摘要:
实现隐藏系统键盘,显示自定义键盘吧;UITextfield获取焦点时,进入textFieldShouldBeginEditing方法,在这个方法中注册两个通知:[[NSNotificationCenter defaultCenter] addObserver:self selector:@selec... 阅读全文
摘要:
-(void)viewDidLoad{UISwipeGestureRecognizer *recognizerRight; recognizerRight = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@select... 阅读全文
摘要:
这个应该是全平台都会遇到的问题了。当某个对象会被多个线程修改的时候,有可能一个线程访问这个对象的时候另一个线程已经把它删掉了,导致 Crash。比较常见的是在网络任务队列里面,主线程往队列里面加入任务,网络线程同时进行删除操作导致挂掉。例子这个真要写比较完整的并发操作的例子就有点复杂了。解决方法加锁... 阅读全文
摘要:
一般情况下应用程序是不需要考虑堆和栈的大小的,总是当作足够大来使用就能满足一般业务开发。但是事实上堆和栈都不是无上限的,过多的递归会导致栈溢出,过多的 alloc 变量会导致堆溢出。例子不得不说 Cocoa 的内存管理优化做得挺好的,单纯用 C++ 在 Mac 下编译后执行以下代码,递归 17467... 阅读全文
摘要:
如果调用一个不存在的方法,系统会crash,ObjC 的方法调用跟 C++ 很不一样。 C++ 在编译的时候就已经绑定了类和方法,一个类不可能调用一个不存在的方法,否则就报编译错误。而 ObjC 则是在 runtime 的时候才去查找应该调用哪一个方法。这两种实现各有优劣,C++ 的绑定使得调用方法... 阅读全文
摘要:
好用分类提供给程序员很多便利,收集一些自己常用到的,会用到的分类;使用数组时注意判断下标是否越界,插入对象前先判断该对象是否为空。if (aObj) { [array addObject:aObj];}可以使用 Cocoa 的 Category 特性直接扩展 NSMutable 类的 Ad... 阅读全文
摘要:
好用分类提供给程序员很多便利,收集一些自己常用到的,会用到的分类;使用数组时注意判断下标是否越界,插入对象前先判断该对象是否为空。if (aObj) { [array addObject:aObj];}可以使用 Cocoa 的 Category 特性直接扩展 NSMutable 类的 Ad... 阅读全文
摘要:
【转】链接本文中的代码托管在github上:https://github.com/WindyShade/DataSaveMethods相对复杂的App仅靠内存的数据肯定无法满足,数据写磁盘作持久化存储是几乎每个客户端软件都需要做的。简单如“是否第一次打开”的BOOL值,大到游戏的进度和状态等数据,都... 阅读全文