iOS面试题

1  iOS中传值的方式

属性  代理  通知  单例  block  

2 写一个单例  代理  类别

单例

+(id)allocWithZone:(struct _NSZone *)zone
{
    
    static Person *person;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        person = [super allocWithZone:zone];
    });
    return person;
}

+(Person *)sharePerson
{
    return [[self alloc] init];
}


3 info.plist 和Prefix.pch的用处
info.plist
项目的配置属性
 
Prefix.pch
1.存放一些全局的宏(整个项目中都用得上的宏)

2.用来包含一些全部的头文件(整个项目中都用得上的头文件)

3.能自动打开或者关闭日志输出功能



4iOS中是否有多线程?怎么实现多态?

 没有

分类和协议



5 多线程有哪些?主线程和次线程有什么区别?怎么通信?

NSThread  GCD NSOperation

主线程不需要创建就存在,子线程需要创建,初始时候不存在

更新UI必须在主线程  而进行延时操作一般都在子线程



-(void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait

 dispatch_async(dispatch_get_main_queue(), <#^(void)block#>)

6 数据存储的方式

1 plist

2 归档

3 SOLite

4CoreData

7jason解析遇到大量数据解析过程时,在内存上的优化办法

利用json的反序列话的几个代理方法,实现大数据的分割,解析,拼接,保存,从而降低内存的消耗。

优化后台接口,使后台返回的数据大小更合理

在APP中,一般不会出现大数据,因此注意接口的优化,尽量不要使用数据分割的方式,因为可能引起数据解析错误



8mvc模式

1>  M:Model,模型,封装数据

2>  V:View,视图界面,负责展示数据

3>  C:Controller,控制器,负责提供数据(Model)给界面(View)



9iOS中的文件目录以及常保存的数据内容 

1、Documents 目录:您应该将所有de应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。

2、AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。

3、Library 目录:这个目录下有两个子目录:Caches 和 Preferences
Preferences 目录:包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好.
Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。

4、tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

10查找table中id<10和随机10条的sql语句

select  top 10* from Table where id < 10

select  top 10* from Table order by newid()

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