iOSInterviewQuestions icon indicating copy to clipboard operation
iOSInterviewQuestions copied to clipboard

iOS interview questions;iOS面试题集锦(附答案)--学习qq群或 Telegram 群交流 https://github.com/ChenYilong/iOSBlog/issues/21

Results 73 iOSInterviewQuestions issues
Sort by recently updated
recently updated
newest added

在 protocol 中使用 property 只会生成 setter 和 getter 方法声明,我们使用属性的目的,是希望遵守我协议的对象能实现该属性

文中的 `- deepCopy` 方法并不能实现深拷贝。 `CYLUser` 的 `- copyWithZone` 方法里,`_friends` 成员的的赋值使用的 `- mutableCopy` 是浅拷贝,只是创建了`NSMutableSet` 对象;导致 `- deepCopy`方法中, _friends 的每一个对象的 _friends 列表并未创建实例。 为了测试 `NSArray`, `NSSet` 容器类初始化行为,我写了测试代码, ``` NSMutableArray *objects = [NSMutableArray array];...

runloop Mode UIApplication.h中有UITrackingRunLoopMode这个

这个因为 [NSOperationQueue mainQueue] 并非单例,这个写法非常像单例,然后我运行下,发现不管在什么情况下 [NSOperationQueue mainQueue] 返回的地址都是相同的进一步证明了我的猜想,让后我下载了Gnustep源码,参考了下[NSOperationQueue mainQueue]和[NSNotificationCenter defaultCenter]写法一样都是单例,那么怎么确认是否有循环引用呢, 我参考了下NSNotificationCenter源码 这就证明了 然后参考addOperationWithBlock源码 所以[NSOperationQueue mainQueue]虽然是单例,但是不持有block,不会造成循环引用,传递完成就销毁了,不会造成无法释放的内存泄漏问题。 还有的问题 我用instrments 无法复现这张图,希望作者能帮我看看。

原文: 在b非nil时,a和b指向同一个内存地址,在b变nil时,a变nil。此时向a发送消息不会崩溃:在Objective-C中向nil发送消息是安全的。 理解: __weak someType *a = someInstance; __weak someType *b = someInstance; b = nil; 此时a是不会变nil的, 即使执行someInstance = nil; 假如在这之前还有 someType *strongInstance = someInstance; a也不会变nil,只有当someInstance的引用计数变为0时,那些weak指向它的才会变nil

@dynamic重点是为了告诉编译器,这个属性的方法在运行时动态提供实现,虽然这也同时表明不需要给这个属性自动生成getter\setter方法,但我觉得后者不是重点,只是附带带来的效果而已。我猜是因为题目是跟@synthesize一起比较,为了凸显区别,所以才导致这么写。

objc_storeWeak函数把第二个参数--赋值对象(b)的内存地址作为键值key,将第一个参数--weak修饰的属性变量(a)的内存地址(&a)作为value,注册到 weak 表中。如果第二个参数(b)为0(nil),那么把变量(a)的内存地址(&a)从weak表中删除, 你可以把objc_storeWeak(&a, b)理解为:objc_storeWeak(value, key),并且当key变nil,将value置nil。 ```c /** * This function stores a new value into a __weak variable. It would * be used anywhere a __weak variable is the...

大家五一出去玩吗? 我五一不出去玩,打算五一当天晚上直播, 有人来吗? 在这里 #视频号:iTeaTime技术清谈 初步想的主题是, - 动态库静态库相关; - iOS内存管理相关; - 另外再对我这个4年的老仓库, 讲讲相关的issue问题, 有任何想在直播里一起交流的, 现在可以新建 issue , 我会看到: https://github.com/ChenYilong/iOSInterviewQuestions/issues 扫码点进视频号里, 点击直播预约, 开播会有推送. 在这里 #视频号:iTeaTime技术清谈 ![image](https://user-images.githubusercontent.com/2911921/116498636-c23d4980-a8dc-11eb-825f-24ff59277ac8.png)