005–OC对象原理探究 – 内存偏移
image.png a和b的值都是10,&a与&b得到的地址不一样,说明的是不同地址可以访问同一个值,简单来说就是值copy。 对象指针 QLDog *dog = [QLDog alloc]; NSLog(@"%@---%p----%p",dog,dog,&dog); 打印结果: image.p.....
image.png a和b的值都是10,&a与&b得到的地址不一样,说明的是不同地址可以访问同一个值,简单来说就是值copy。 对象指针 QLDog *dog = [QLDog alloc]; NSLog(@"%@---%p----%p",dog,dog,&dog); 打印结果: image.p.....
可复制代码: if (self != [self.navigationController.viewControllers firstObject]) {//非一级页开启侧滑 //开启系统自带侧滑返回 if([self.navigationControllerrespo...
2. 创建不同层级的领导实现类,依次为组长,主管,经理,老板 3. 创建不同的领导对象,关联责任链,进行报销申请 我是今阳,如果想要进阶和了解更多的干货,欢迎关注公众号”今阳说“接收我的最新文章...
不可变对象赋值引用改变变量值.png 对于可变对象,调用自身方法使的值改变不会改变内存地址。比如列表list,字典dict,集合set,如果是在原数据对象自身上做修改,比如修改列表中的某个元素,列表的地址不会变,还是原来的那个内存对象,此时调用另一个变量的值也会改变,因为是同一个内存对象的两个引用,...
RunLoop是什么?为什么要有RunLoop?一般来说,一个线程只能执行一个任务,执行完就退出。如果我们需要一种机制,让线程不退出,随时能处理事件,那么我们就用到了RunLoop。那么,RunLoop是什么?RunLoop又叫运行循环,内部就是一个do-while循环,在这个循环内部不断处理各种任...
image CFRunLoop完整代码:opensource.apple.com/source/CF/C… RunLoop的六个状态 typedef CF_OPTIONS(CFOptionFlags, CFRunLoopActivity) { kCFRunLoopEntry , // 进入 loop...
depObj.png 即使修改 obj.data 下的属性,也是跟之前的没有关系 const depObj = deepCopy(obj3) depObj.obj.data.child = '修改' console.log(obj3) // NaN: NaN // arr: (3) [1, 2, 3...
image.jpeg image.png 然后 objc_initWeak 函数里面会调用 objc_storeWeak() 函数,objc_storeWeak() 函数的作用是用来更新指针的指向,创建弱引用表。 image.jpeg image.png 在最后会调用 clearDeallocati...
断点.png 2、运行工程,选择断点部分,操作如下 gifDemo.gif 这样就可以打到自己想要打的底层代码断点。 二、control + step into 1、首先要在某行打个断点。 断点.png 2、然后先摁住键盘的control,点击Xcode的向下箭头,如下图 break.gif 三、根...