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中的文件目录以及常保存的数据内容 

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

二、AppName.app 目录:这是应用程序的程序包目录,包含应用程序的自己。因为应用程序必须通过签名,因此您在运行时不能对这个目录中的内容进行修改,不然可能会使应用程序没法启动。

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

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

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

select  top 10* from Table where id < 10

select  top 10* from Table order by newid()
相关文章
相关标签/搜索