iOS面试题
来源:互联网 发布:防火知多少反思 编辑:程序博客网 时间:2024/05/22 06:46
原文地址:http://blog.csdn.net/mysevenmi/article/details/45289293
- NSArray 和 NSMutableArray 的区别(线程方向)?
NSArray是线程安全的, NSMutableArray是线程不安全的, 多线程中使用 需要 手动加锁 NSLock 或使用 @synchronized 修饰. - Autorelease pool 实现原理?
在ARC中使用 @@autoreleasepool修饰需要手动添加到释放池的代码.大概意思是autorelease pool 内部为一个双向链表, 每个链表元素为一个页,每个页是一个栈,详细的实现机制在这里,虽然不是很懂,感觉博主写的很好 - iOS沙盒机制
默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。因为应用的沙盒机制,应用只能在几个目录下读写文件
Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录
Library:存储程序的默认设置或其它状态信息;
Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除
tmp:提供一个即时创建临时文件的地方。
iTunes在与iPhone同步时,备份所有的Documents和Library文件。
iPhone在重启时,会丢弃所有的tmp文件。 - 深拷贝和浅拷贝的区别? 官方指南
首先, 被拷贝对象必须实现了NSCopying协议
浅拷贝: 被拷贝在内存中只有一份, 只是增加了一个指针指向这个对象, 浅拷贝导致该对象引用计数加1.
深拷贝为被拷贝对象在内存中复制一份被拷贝着所持有,原来的对象引用计数不变,拷贝出来的对象引用计数加1.
拷贝方法为 NSCopying协议方法:+ (id)copyWithZone:(struct _NSZone *)zone
和+ (id)mutableCopyWithZone:(struct _NSZone *)zone
具体返回的是深拷贝还是浅拷贝, 需要看代理方法是如何实现的, 不过copy方法返回的始终为不可变对象, mutableCopy方法返回的是可变对象. 另外 归档和反归档是真正的深拷贝.
- NSArray 和 NSMutableArray 的区别(线程方向)?
NSArray是线程安全的, NSMutableArray是线程不安全的, 多线程中使用 需要 手动加锁 NSLock 或使用 @synchronized 修饰. - Autorelease pool 实现原理?
在ARC中使用 @@autoreleasepool修饰需要手动添加到释放池的代码.大概意思是autorelease pool 内部为一个双向链表, 每个链表元素为一个页,每个页是一个栈,详细的实现机制在这里,虽然不是很懂,感觉博主写的很好 - iOS沙盒机制
默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。因为应用的沙盒机制,应用只能在几个目录下读写文件
Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录
Library:存储程序的默认设置或其它状态信息;
Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除
tmp:提供一个即时创建临时文件的地方。
iTunes在与iPhone同步时,备份所有的Documents和Library文件。
iPhone在重启时,会丢弃所有的tmp文件。 - 深拷贝和浅拷贝的区别? 官方指南
首先, 被拷贝对象必须实现了NSCopying协议
浅拷贝: 被拷贝在内存中只有一份, 只是增加了一个指针指向这个对象, 浅拷贝导致该对象引用计数加1.
深拷贝为被拷贝对象在内存中复制一份被拷贝着所持有,原来的对象引用计数不变,拷贝出来的对象引用计数加1.
拷贝方法为 NSCopying协议方法:+ (id)copyWithZone:(struct _NSZone *)zone
和+ (id)mutableCopyWithZone:(struct _NSZone *)zone
具体返回的是深拷贝还是浅拷贝, 需要看代理方法是如何实现的, 不过copy方法返回的始终为不可变对象, mutableCopy方法返回的是可变对象. 另外 归档和反归档是真正的深拷贝.
0 0
- iOS技术面试题
- ios面试题
- IOS面试题
- ios基础面试题
- IOS 面试题
- iOS开发面试题
- iOS 面试题二
- iOS面试题
- IOS 面试题
- ios 面试题
- IOS面试题详解
- ios面试题
- iOS面试题汇总
- ios基础面试题
- IOS面试题归总
- IOS面试题详解
- IOS面试题详解
- ios面试题
- Ruby中使用Block、Proc、lambda實現閉包
- Android Studio 1.2正式版发布,要如何更新? Please check network connection and try again.
- nyoj27 水池数目
- ruby 簡單例子
- linux 命令系列之 awk命令(56)
- iOS面试题
- 使用Ruby re模塊創建複雜的正則表達式
- ruby 數組使用教程
- Ruby中嵌套對象轉換成json的方法
- 机器学习(一)线性回归
- ruby開發的互動式程序例子
- iOS 条形码 二维码 的生成 和 扫描 zBarSDK zXing
- goodFeaturesToTrack函数详细介绍
- ruby 局部變數