iOS试题

iOS试题
1、沙盒中有几个文件夹,他们的区别是什么?
1、Documents:

应用程序将其数据存储在Documents中,但基于NSUserDefaults的首选项设置除外。

获取程序的Documents目录的代码是:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
则documentsDirectory中存储的就是Documents目录的地址,每个应用程序都只有一个Documents目录,所以获取paths数组中索引为0的目录。

2、Library:

Library目录包含两个子目录:Caches与Preferences,基于NSUserDefaults的首选项设置存储在Library/preferences文件夹中。

(1) 获取Library目录地址:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libraryDirectory = [paths objectAtIndex:0];
(2) 获取Caches目录地址:

NSArray paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString
cachesDirectory = [paths objectAtIndex:0];
3、tmp:

tmp目录供应用程序存储临时文件。

获取tmp目录:

NSString *tempPath = NSTemporaryDirectory();
获取文件目录后,创建文件名的方法:

NSString *filename = [documentsDirectory stringByAppendingPathComponent:@"filename.txt"];

2、数据库或沙盒中如果文件过多,怎么提高查询效率?
3、什么情况下用autorelease,其原理是什么?
4、block容易造成野指针,如何发现?
5、一个界面如果有大量表单,表单中有各种选择类型,如何写UI?
6、大量页面使用背景图如何优化内存?
7、多线程什么情况下会造成死锁,请列举一个?
8、iOS中使用的各种数据持久化的区别?
9、ARC下会不会有内存泄漏?如何优化?
10、OC有么有多继承?
11、OC为什么会有Runtime?
12、约束有几种类型?
13、Documentary文件夹的操作需要注意什么?
14、如何打包静态库

你可能感兴趣的:(iOS试题)