- 博客(11)
- 收藏
- 关注
原创 iOS OC 基础知识整理
属性通过@property关键字声明。属性自动产生一个后台实例变量(默认情况下,编译器会自动生成一个带有前缀的成员变量),并为这个属性生成getter和setter方法(除非指定为readonly成员变量直接在类的实现文件中或接口文件的{}中声明。总而言之,属性和成员变量各有用途。在实际开发中,推荐优先使用属性,因为它提供了更好的封装性、内存管理和易用性。成员变量则适用于你需要更细粒度控制或避免属性机制带来的某些开销时。正确地使用属性和成员变量,可以使你的代码更加健壯、易维护。
2024-06-29 18:18:19
316
原创 iOS Zombie Object僵尸对象解析
为什么觉得有必要来研究下这个问题呢,正所谓书到用时方恨少。。。这两天在面试,面试的时候问了什么是 Zombie Object,如何调试它。。。我 balabala。。。。说了一大堆,正当我沾沾自喜的时候,面试官又问了一句,那 OC 是怎么实现 Zombie Object 的呢?打开这些环境变量,底层都做了什么呢?我微微一笑,略表尊重,不知道。。。。好吧,那就好好整理下吧,防止下次再被问到。...
2019-01-05 16:58:31
2584
原创 objc_msgSend的用法
objc_msgSend 的定义为:为某个类对象发送消息,并返回一个值。objc_msgSend(id _Nullable self, SEL _Nonnull op, ...)第一个参数:消息接受的对象实例第二个参数:执行的方法... 其他参数我们可以吧OC代码通过编译选项-rewrite-objc选项转换为c代码(objc_msgSend)ClassA的有个方法为met...
2018-11-28 11:34:44
3932
原创 实现透明controller的跳转
最近接到一个需求,就是从controllerA加载一个透明controllerB,这个透明controllerB只需要实现一件事就是自动打开支付宝授权sdk,然后处理sdk的返回值,再把结果返回给controllerA。。。。。要让人觉得没有controllerB这回事儿。一开始思路跑偏了,就是想把controllerA截图作为controllerB的背景,你别说还挺像那么回事的,我自己还能接受,...
2018-11-07 14:08:28
203
原创 继承自UITableViewController的tableview,底部被遮住了49像素
今天做项目的时候发现继承自UITableViewController的tableview,底部被遮住了49像素,这是咋回事呢,想想好像遇到过,只要设置self.edgesForExtendedLayout = UIRectEdgeNone;就可以正常,立马去做了,好神奇,以前明明可以的,现在为毛又不行了,也不能说完全不行,只是tabBar的背景色又变了,几经失败之后,确认在ios11中这种方法好像...
2018-10-25 16:14:40
942
原创 设置self.automaticallyAdjustsScrollViewInsets = NO
设置self.automaticallyAdjustsScrollViewInsets =NO,我的controller继承于UITableViewController,然后tableview下面被遮住了20像素,解决方案self.edgesForExtendedLayout =UIRectEdgeNone;就可以正常
2016-04-25 17:20:05
2967
原创 使用make是报错xcodebuild: “No applicable devices found.” when exporting archive
解决方案输入命令:rvm use system安装fir 命令 gem install fir-cli查看make当前执行到哪一步 make -n
2016-02-26 11:36:17
373
原创 iOS缓存策略
缓存类型1 NSURLRequestUseProtocolCachePolicy NSURLRequest默认的cache policy,使用Protocol协议定义。2 NSURLRequestReloadIgnoringCacheData 忽略缓存地址,直接从原始地址下载3 NSURLRequestReturnCacheDataElseLoad 只有在cache中不存在data时
2016-01-20 15:40:26
252
原创 在返回界面的时候,程序响应scrollViewDidScroll崩溃
-[ReleaseServiceViewController scrollViewDidScroll:]: message sent to deallocated instance 0x16124ba0解决方案在dealloc的时候设置tableview的delegate为nil
2015-11-30 14:19:43
574
原创 实现循环调用系统的震动或者单次调用
// 震动- (void)playVibration{ // Register the sound completion callback. AudioServicesAddSystemSoundCompletion(kSystemSoundID_Vibrate, NULL,
2015-11-22 11:47:04
311
原创 点击button事件和拖动button事件冲突
之前写了button,悬浮在界面上,点击弹出新的界面,拖动可以移动到任何位置。但3DTouch出现之后,蛋疼的事情就发生了,你必须很轻很轻的去点击,button才能响应UIControlEventTouchUpInside事件,否则就响应touchesMoved事件,很是蛋蛋疼。后来几经折腾,使用手势优化了下。原来的UIControlEventTouchUpInside事件换成
2015-11-22 11:32:55
3779
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人