xcode中怎么调一个xcode 缓存文件夹路径使用手动释放

顶部广告招商!联系QQ:!
查看: 17330|回复: 18
精华0阅读权限10注册时间最后登录金钱10 帖子
编程初学者, 积分 43, 距离下一级还需 -18 积分
UID28085注册时间最后登录iOS设备iPad金钱10 帖子
本帖最后由 lysygyy 于
11:34 编辑
xcode如何用代码打开指定的文件夹目录并显示目录内容,
以及中文乱码问题,如何读取 ini 文件问题。
本人初学者,不知道该如何下手,这跟哪些类相关,也不知道该查哪些资料,恳请大虾们指点一二。
精华0阅读权限30注册时间最后登录金钱332 帖子
高级程序员, 积分 222, 距离下一级还需 278 积分
UID18985注册时间最后登录iOS设备iPhone金钱332 帖子
不是太懂你的意思。如果你想做一个类似文件管理器的东西。赶紧打住。你见app store里有这样的应用吗?ios有沙箱机制,每个应用程序只对自己的几个文件夹有读写权限。就像蹲监狱一样。只能在自己的房间里呆着,不准串门。越狱就是为了打破这种限制。
精华0阅读权限10注册时间最后登录金钱10 帖子
编程初学者, 积分 43, 距离下一级还需 -18 积分
UID28085注册时间最后登录iOS设备iPad金钱10 帖子
本帖最后由 lysygyy 于
08:52 编辑
谢谢楼上的回答,对于IOS平台开发,我是初学者;以前都是在做基于Winform的VC++的开发;
我现在程序中的一个事件需要定位到它所对应的电脑上的一个目录(在vc++中,打开目录可以使用SehllExecute,不知道这里有没有类似功能的函数);
目前我使用的是Mac OS X Lion 10.7.2的虚拟机 + xcode 4.2 + ipad 5.0模拟器;
在虚拟机中开发的程序在模拟器上运行,我要打开的目录也在虚拟机中
我要实现的功能很简单,就是在模拟器中打开指定目录,然后双击目录下的文件(例如txt,dwg,doc),可以打开查看。
楼上说到 “ios有沙箱机制,每个应用程序只对自己的几个文件夹有读写权限”,我这里要打开的指定目录就放在我当前执行程序的目录下的。
精华0阅读权限30注册时间最后登录金钱332 帖子
高级程序员, 积分 222, 距离下一级还需 278 积分
UID18985注册时间最后登录iOS设备iPhone金钱332 帖子
这样就好办。
通过下面这段代码,就可以获取一个目录内的文件及文件夹列表。
NSFileManager *fileManager = [NSFileManager defaultManager];
//在这里获取应用程序Documents文件夹里的文件及文件夹列表
& && &&&NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
& && &&&NSString *documentDir = [documentPaths objectAtIndex:0];
& && &&&NSError *error =
& && &&&NSArray *fileList = [[NSArray alloc] init];
//fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
& && &&&fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error];
以下这段代码则可以列出给定一个文件夹里的所有子文件夹名
NSMutableArray *dirArray = [[NSMutableArray alloc] init];
& && &&&BOOL isDir = NO;
//在上面那段程序中获得的fileList中列出文件夹名
& && &&&for (NSString *file in fileList) {
& && && && && & NSString *path = [documentDir stringByAppendingPathComponent:file];
& && && && && & [fileManager fileExistsAtPath:path isDirectory:(&isDir)];
& && && && && & if (isDir) {
& && && && && && && && &[dirArray addObject:file];
& && && && && & }
& && && && && & isDir = NO;
& && &&&NSLog(@&Every Thing in the dir:%@&,fileList);
& && &&&NSLog(@&All folders:%@&,dirArray);
精华0阅读权限10注册时间最后登录金钱10 帖子
编程初学者, 积分 43, 距离下一级还需 -18 积分
UID28085注册时间最后登录iOS设备iPad金钱10 帖子
十分感谢&&baby_h 的回答。
可是现在获取到了文件目录以及子目录,怎么在模拟器上打开它们呢?
就像windows上一样打开一个目录窗口,其下的doc,txt,dwg文件还可以用对应的应用程序打开。
我今天搜索了一天,也没看到相关的内容呢? ios有没有标准系统文件函数可以对文档进行打开操作呢?
精华0阅读权限30注册时间最后登录金钱332 帖子
高级程序员, 积分 222, 距离下一级还需 278 积分
UID18985注册时间最后登录iOS设备iPhone金钱332 帖子
lysygyy 发表于
十分感谢&&baby_h 的回答。
可是现在获取到了文件目录以及子目录,怎么在模拟器上打开它们呢?
就像windows ...
目录窗口是可以自己创建,然后把数据填进去的。
打开doc文件的函数ios貌似没有提供,微软最近才为mac os开发office。ios第三方的应用就不知道了。
精华0阅读权限10注册时间最后登录金钱10 帖子
编程初学者, 积分 43, 距离下一级还需 -18 积分
UID28085注册时间最后登录iOS设备iPad金钱10 帖子
我知道可以自己创建一个TableView来显示目录内容,但是如果目录下递归包含子目录,一层层打开都用TableView来显示,窗口不知道要创建多少;怎么说这个方法都不是上上之选。
如果可以,还是能直接定位到文档目录比较好。
ios是有很多文件操作相关的函数,但是大致看了下,似乎没有打开目录的方法;感觉上,标准系统文件函数是应该有的才对。
至于后续的打开不同类型的文件的问题,做一步是一步了,我想,只要我努力,通过大家集思广益,肯定没有解决不了的问题的。
精华0阅读权限10注册时间最后登录金钱10 帖子
编程初学者, 积分 43, 距离下一级还需 -18 积分
UID28085注册时间最后登录iOS设备iPad金钱10 帖子
本帖最后由 lysygyy 于
09:14 编辑
我将目录和文件路径都转换为了NSURL类型,转换后的路径类似:&/MahMood1/Users/DeskTop/...&,然后用[[UIApplication sharedApplication] openURL:url];返回为NO,canOpenURL函数也返回NO,也就是说这个URL是打不开的;若将url赋值为&http://...&这类IE直接可以打开的地址,使用openURL在模拟器中是可以直接跳转到浏览器页面的。请问,这个url是有什么限制吗?
假设本地路径的url也可以像windows一样在路径搜索框中输入,是不是就可以像windows一样打开目录了呢?
在网上看到用UIDocment类,不知道怎样
精华0阅读权限30注册时间最后登录金钱332 帖子
高级程序员, 积分 222, 距离下一级还需 278 积分
UID18985注册时间最后登录iOS设备iPhone金钱332 帖子
这个东西我还真没做过,其实俺也是新手,刚在网上搜了下,没什么收获。如果楼主找到什么好的解决方案,希望能分享下。如果楼主愿意,可以加我qq&&,以后大家可以交流下。
精华0阅读权限10注册时间最后登录金钱10 帖子
编程初学者, 积分 43, 距离下一级还需 -18 积分
UID28085注册时间最后登录iOS设备iPad金钱10 帖子
本帖最后由 lysygyy 于
10:32 编辑
做ios平台开发的大多都是新手吧,可是功能必须实现呀,现在还只是做个demo,演示给客户看的,功能都挑最简单的实现,看来今天未必能搞定了,周末是要加班了。
可怜的我,谁来拯救我啊?
Powered by找出Xcode中工程的内存泄露!(详细图文讲解) - 简书
找出Xcode中工程的内存泄露!(详细图文讲解)
当工程崩溃在main.m的时候,我的内心也是崩溃的!根本就不知道为什么蹦嘛!?这里,分享几个调试内存错误的方法,希望大家也能从中找出BUG原因!~目录:1.手动设置NSZombieEnabled2.Instruments中的Leake3.Instruments中的Zombies4.Analyze工具静态分析内存泄露运行工程后,在main.m中崩溃,此时 图1 显示是:EXC_BAD_ACCESS(code=1,address=0x10)遇到EXC_BAD_ACCESS这个错误时,意味着你向一个已释放的对象发送消息。
1.手动设置NSZombieEnabled在僵尸模式下,当你对某个已被僵尸对象(已被释放的对象)发送消息时,应用会因为EXC_BAD_ACCESS 而崩溃,并打印出发送这个消息的对象,这时我们就可以进行操作啦!~调试操作如下图
设置好僵尸模式后,运行工程。发现工程向一个僵尸对象发送了消息导致了崩溃,此时打印出以下信息:
发现是 BMKGeoCodeSearch 过度释放了!在Xcode中Comamd+3,左边菜单跳转到 放大镜 后,搜索关键词。由于我的应用是在百度地图定位后崩溃,所以跳转到对应页面。
发现之前这里用另一个属性去继承了它,并且又再次释放了(接收别人工程的坑啊...),这里将
删除 或 // 就可以了,运行工程就不再崩溃了。
2.Instruments中的Leakecommand+i 就可以调出这个模式Instruments非常实用,可以测试工程的许多问题,内存优化、检测隐藏bug之类的,感兴趣的可以去搜索一下,这里只介绍 Leake 这个功能,它用于找出APP中的泄露问题。PS:真机测试不能用生产证书哟,会无法使用的。
虽然是跳转到这里,并不精确是红色的这一段出错,但能确定的是出错原因在这个方法中,仔细看了就发现,在方法的最后由于多释放了一次导致奔溃。
3.Instruments中的Zombies两种调试的僵尸模式,推荐使用这种,个人感觉更加清晰明了,看图说话。
点击红点运作后,出现一个弹框,点击箭头打开 图14
关键的地方来啦!
4.Analyze工具静态分析内存泄露shift+command+b ,Xcode就会帮你编译一次,并且找你找出有缺陷的代码,很多提示都是无用的。所以,这个需要自行判断,在你觉得有问题的地方中查看是否有内存泄露的问题。点进去看看吧!
以上就是本人整理和归纳的一些方法,希望能帮到大家 :)参考链接:
Pain is inevitable,Suffering is optional.聪明的iOS开发者的Xcode使用技巧
招聘信息:
本文由译者KingOfOnePiece()翻译,敬请指正。作者:原文:ps:此文原作者赘述太多,译者据原文摘译。用Xcode的快捷方式快速打开你的文件在开始使用Xcode之前就应该强制记忆其快速打开(Open Quickly)的快捷方式。Mac OS X有一个功能叫做Spotlight搜索(空格),可以帮你找到文件和应用程序(包括别的文件)。快速打开就是Xcode的Spotlight搜索。我经常使用快速打开这个快捷方式,因为这是打开一个文件最简单的方法,只要你知道文件的名字或文件中一个方法/公共变量的名称。快速打开的优点是它使用模糊匹配的逻辑。例如,如果我知道该文件的一些概要,我可以键入“概要”,它会给出任何包含“概要”这个词汇名称的文件。技巧:用快速打开搜索一个方法或属性可能会很慢,因为它需要对整个项目进行索引和搜索。你的工程越大这会变得越糟,所以搜索一个方法或者属性时,试一下这么搜:1、使用&command+shift+O&搜索文件并打开。2、使用&control+6&快捷方式打开跳转菜单。3、开始键入名称,发现它时点击进入。这会快得多,因为它只索引单个文件的公共符号而不是在整个工程中。快捷方式:command+shift+O用快捷键和代码片段快速编码我们用了一种不太科学的方式进行测试,用iPhone的秒表测试用鼠标做五个常见的Xcode的事务所花费的时间,我的编码时间中大约有5%花在了Xcode的导航上。根据运行情况,这个测试表明键盘的快捷键要快1.5到3倍。在这个基础上保守估计,在10000小时的职场生涯中,使用Xcode快捷键可以为你节省大约250小时的时间。此外,还有一个学习快捷键的决定性价值。你学习的快捷键越多,你手指放在键盘上的时间越多,更有助于你专注于思路。现在就试一试!开始专注键入一段代码,用鼠标选择和删除一个词汇,然后继续打字。关注思路是如何被打断的?当你在脑海中平衡一个复杂的编程问题时,轻微的打扰就会中断你的思路。。对于哪些想要Xcode更详细UI导航快捷键列表的开发者,可参考以下Xcode界面截图。这些快捷键涉及到Xcode窗口的不同部分。我标记的屏幕区域如下:导航(蓝色),编辑器(红色)、调试(绿色)、实用工具(黄色),工具栏(紫色)。command+0: 展示/隐藏导航区域command+1 到command+n:选择不同的导航器command+option+J: 过滤导航结果command+shift+Y: 显示/隐藏调试区command+option+0: :显示/隐藏实用工具区command+option+1 到command+option+n: 切换实用工具区选项卡control+6:方法的跳转菜单control+1: 魔法菜单(打开试试)control+command+Up 和&control+command+Down: 对应文件导航control+command+E: 范围内重命名符号(注意:不支持属性)control+command+Left 和 control+command+Right: 查看历史文件control+command+J: 查看符号来源option+Selection: 垂直选择option修饰符: 在辅助编辑器执行快捷键command+shift+] 和command+shift[: 移动到下一个/上一个的标签command+option+] 和command+option+[: 将某行代码向上和向下移动command+R: 运行应用程序command+B: 构建应用程序control+.: 停止运行中的应用程序control+i: 格式化代码(高亮代码)Xcode的代码片段是另外一种加快编程的途径。我反复用代码片段为一小块代码分配一个代号。输入(非常短)代码的名称,我可以把相应的代码块添加到项目中。根据工作类型的代码,Xcode代码片段可以有效提高工作效率。看看这些GitHub链接,开始你自己的代码片段收集:使用Xcode的辅助编辑器辅助编辑器是Xcode中最有用的工具。最初几个月我都没有发现它,直到用这个神奇的按钮打开了我即将编辑的文件。它不是100%的准确,但是菜单系统的设计是超级直观的,所以你基本上总能找到相关的文件。辅助编辑器将文本编辑器分为两个窗格,并根据你在第一个窗格中正在编辑的文件明智地在第二个窗格中展示有用的功能。例如如果你在storyboard中,它将会展示与当前正在编辑的视图相关的视图控制器代码;如果你处于一个Objective-C实现文件中,辅助编辑器将会展示文件的头文件。你也可以调整辅助编辑器来展示基于普通过滤器的文件或者手动导航到某个文件。话说我看到一个类,并试图查看如何使用它。这是辅助编辑器很擅长的任务。辅助编辑默认选择实现文件,因为我们正处于头文件中,所以我调整过滤器以展示包括左侧文件在内的文件。我很快找到了该类的用法并思考如何使用它。过去我通常是在整个项目中进行搜索,但是辅助编辑器在这方面速度更快,并可以同时在一个屏幕中显示两个环境。。技巧:在Xcode中处理UI文件的一项常见操作是设置IBOutlets。你可以用很多方法来做到这一点,但是我最喜欢用辅助编辑器将视图向右拖拽到代码文件中。。快捷键:和:显示/隐藏标准编辑器和辅助编辑器as modifier.例如使用模糊的文件搜索,然后按下,选择一个文件将在辅助编辑器中打开它,而不是主编辑器。使用、编辑断点以及为其添加不同的ActionXcode的断点对有经验的使用者来说是个强大的功能。在开发者的职场生涯中,调试工作是困难的,并且花费的时间要比写代码更多。对于使用其他IDE的开发者来说,Xcode提供了一些可能被人忽略的强大的调试的工具。首先,打开异常/错误断点。每当抛出错误或异常时,调试器都要打一个断点。很多时候应用程序遇到错误或异常会导致程序的崩溃,并且我们会被令人厌恶的代码所纠缠。开启断点的时调试器将会在应用程序的逻辑栈上暂停,这对于诊断问题非常有用。。然后,你可以通过编辑断点来更高级地使用它。我做过大量的结对编程,发现编辑断点可以激发开发者的思维。许多人都知道他的功能但不实用,我很幸运在我的Xcode生涯早期有一个聪明的开发者教我关于编辑断点的使用。技巧:编辑断点添加一个操作。这些action可以是Debugger Command,也可以是Log Message。比如说,我想知道在应用程序的生命周期中何时加载这个视图。我可以在Xcode击中断点时播放声音且调试器不会中断应用程序(通过“Automatically continue after&evaluating actions”复选框),而不是添加一个会扰乱我工作流程的传统断点。现在我可以继续愉快地测试,并在加载视图控制器时听到欢快的哔哔声。这是一个快速给你展示如何设置它的示例。使用Version Editor和Show Related Items更好地审查代码遇到不合适的或者难易理解的代码时,我通常会先使用Blame模式。Blame模式可以查出原作者以及编写该代码的原因(如果作者写的话)。如果作者没有写明编写该代码的原因,我会跟他们联系并亲自问明原因。同样的,Compare模式(对比模式)可以精准指出此前上传的代码哪些地方发生了变化。对比模式可以提示我是否遗留了一些测试代码或者空的注释,然后修正和审核代码。对比模式在追踪bug方面也非常有用。如何才能准确地使用版本编辑器的Blame和Compare模式呢?比如我正在跟踪某个问题的原因,我发现不知何故将临时证书添加到了代码中,所以我使用Blame模式查找临时证书添加的时间添加的原因,结果告诉我去年为了修复某个崩溃问题添加了临时证书。现在我知道去年添加了临时证书,不过我认为这可能不是导致问题的原因。那么还有其他什么发生了改变吗?为了找到答案,我使用Compare模式找到了问题的源头,可以通过一个方案来解决该问题。另一个可以充分使用的功能是审核代码时使用的Xcode的Show Related Items功能,我称之为“魔法菜单”,虽然它非常有用,但在使用Xcode的第一年,我几乎没有发现它的存在。这个按钮隐藏的非常深,并且看起来也不是可点击的,但是它包含了Callers和Callees这样强大的功能,展示代码在什么地方以及被谁调用过。这个功能可帮助我弄清楚哪里会被改变以及如何改变一大块代码,而又不破坏别的地方。通过扩展为Xcode添加功能扩展可以为Xcode添加新的或者其本身缺失的功能。不过扩展系统不像其他IDE那样健壮,也不为大多人所知。虽然扩展有很多很酷的地方,但也依然存在问题。大部分IDE都有内置的扩展库,但Xcode甚至没有文档说明他们的扩展API。你可以通过以下比较有用的插件为Xcode添加新功能。:一个开源的Xcode包管理器,可以让你更便捷地发现、安装以及管理插件、模板和配色方案。只需要简单地点击或者勾选,不需要手工复制和粘贴。&:一个适用于Xcode 5以上版本的插件,通过添加模糊匹配来提高Xcode代码自动补全功能。虽然你可以通过Xcode的command+shift+O快捷键进行文件和符号名称的模糊搜索,但Xcode默认从首字母进行模糊匹配。而使用FuzzyAutocompletePlugin,开发者无需遵循从头匹配的原则,只要记得方法里某个关键字即可进行匹配,很好地提高了工作效率。:很多时候,为了快速开发,很多的技术文档都是能省则省,这个时候注释就变得异常重要,再配合Doxygen这种注释自动生成文档的,就完美了。但是每次都要手动输入规范化的注释,着实也麻烦,但有了VVDocumenter,只需要在要写文档的代码上面连打三个斜杠,就能自动提取参数等生成规范的Javadoc格式文档注释。&:允许你指定一个编码风格,然后格式化保存代码,无需为了匹配你的代码风格而不断调整代码。你可以检查保存的格式配置和任何扩展它们的代码。(现在只适用于Objective-C): Xcode自带一些默认的配色主题,但如果不够,可通过Alcatraz安装其他主题。:增大或减小Xcode编辑器的字体。:为Xcode增加一个清除全部缓存的按钮。这在调试工程时是很有用的。:根据项目中类之间的依赖关系生成有向图。:展示文本编辑器中UIColor或NSColor的预览效果。通过它可以创建或编辑可视化的颜色。:不用Xcode的文档查看器,而是用Dash应用检阅文档。:当在Objective-C中使用switch语句时,很容易忘记检查所有用例而产生bug。这个插件可以自动生成switch语句代码,并安全处理所有用例。功能包括:插入所有可能的switch cases;保留已经使用的条件,仅插入缺失的条件;当使用内置的Xcode片段时仅保留默认条件;适用于变量、属性以及方法参数等;适用于嵌套switch语句;快速稳定,且不会明显影响Xcode的性能。通过Interface Builder大幅度提高你的效率Xcode有一个叫做Interface Builder的用于搭建用户界面的可视化工具。它不要求使用Interface Builder来创建UI,但可以使调整UI这项的乏味任务变得更简单。Interface Builder的大部分操作都在Xcode的实用工具区,所以知道如何以及何时使用相关部件是很有用的,可使用快捷键command+option+0()来打开实用工具区,就能看到6个非标签性质的按钮,每一个都有不同的重要性,对于Xcode初学者来说找到自己需要的按钮会有点困惑。按照从左到右的顺序,这6个按钮分别是:文件检查器(File Inspector)、快速帮助(Quick Help)、识别检查器(Identity Inspector)、属性检查器(Attributes Inspector)、规格检查器(Size Inspector)和连接检查器(Connections Inspector)。文件检查器(File Inspector):这个特性非常很少使用。看个人爱好,你可以点击打开或关闭自动布局和配置本地化。快速帮助(Quick Help):这个特性很少使用,可链接到你所选中项目的相关文档。识别检查器(Identity Inspector):一个很有用的功能,身份检查器用于访问和设置自定义视图类。属性检查器(Attributes Inspector):我使用它最多。可以配置所选项目的属性,例如标签文本、背景颜色以及alpha值等。尺寸检查器(Size Inspector):另一个有用的功能,可协助你查看和编辑自动布局约束。连接检查器(Connections Inspector):此功能的使用频率取决于你IBOutlet的工作流程,可用来连接和查看IBOutlets。总结你无需使用以上列出的所有技能才能成为Xcode行家。每个人都有自己独特的Xcode使用技巧,也没有两个人所列的技巧完全一致,关键要弄清楚哪个快捷键和技巧最适合你的开发工作,希望以上内容可以帮你回顾下自己的Xcode使用经验,并找出其他方法让自己成为更有效率、更熟练的开发人员。推荐阅读:更多译者翻译文章,请查看:本文仅用于学习和交流目的,转载请注明文章译者、出处和本文链接。&感谢对本期活动的支持
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
您还没有登录!请或
点击量10810点击量10492点击量9338点击量6591点击量5420点击量5217点击量5145点击量5039点击量4686
&2015 Chukong Technologies,Inc.
京公网安备89

我要回帖

更多关于 xcode 创建文件夹 的文章

 

随机推荐