iOS经验之谈
Dwyane_Coding
简书:https://www.jianshu.com/u/bb2db3428fff
掘金:https://juejin.im/user/5a3cb4935188257d391d3ce8
展开
-
does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), o
可能大家做项目的时候会遇到这个错误,故此我分享一下。····does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for thi原创 2016-04-13 17:46:07 · 3101 阅读 · 0 评论 -
获取版本号[[NSBundle mainBundle] infoDictionary]
很多朋友改版本号,通过改变属性,比如说self.versionLabel = @”1.0”,版本更新后,self.versionLabel = @”1.1” 如果通过这样改,那就很麻烦了。但是如果通过代码获取info的version信息,那就很方便,以后版本更换后,只需要改变info的version,就可以了。//获取当前版本号 NSDictionary *infoDic = [[NSBun原创 2016-10-08 18:19:17 · 3941 阅读 · 0 评论 -
NSMutableArray的strong改成copy就崩溃
先要搞明白copy属性到底做了些啥一个属性标记了copy,当你调用他的setter方法,他会建立一个索引计数为1的对象,然后释放旧对象。例如@property (copy) NSMutableArray * a;NSMutableArray* b = [NSMutableArray array];a = b;等同于@property (strong) NSMutableArray翻译 2016-08-03 22:12:09 · 832 阅读 · 0 评论 -
归档解档自定义类奔溃的问题
要特别注意的是,归档解档方法只能应用于基本的Foundation对象,如果NSArray或NSDictionary中包含自定义的类对象,或直接归档自定义类对象,那么程序将会崩溃: 报错如下: [User encodeWithCoder:]: unrecognized selector sent to instance 0xcb4e560原因是User类的encodeWithCoder方法没有实现原创 2016-08-15 15:53:54 · 621 阅读 · 0 评论 -
小技巧汇总(不定时更新···)
OC版本:[self.tabBarControllersetSelectedIndex:3]; //跳到第三个tabBarController原创 2016-08-03 14:27:43 · 332 阅读 · 0 评论 -
The certificate used to sign "XXX" has either expired or has been revoked
在Xcode真机调试开发过程中,无论是使用个人证书或者是企业证书,经常会遇到这样的问题: The certificate used to sign “XXX” has either expired or has been revoked. An updated certificate is required to sign and install the application. 刚开始在key翻译 2016-06-23 17:11:25 · 10476 阅读 · 0 评论 -
为什么用copy for NSString属性?
当你声明一个NSString属性最好使用copy而不是strong。事实上这适用于任何不可变类,符合NSCopying协议像NSNumber NSArray,NSSet等等。所有我提到的这些类也有一个可变的版本。你想使用copy,因为NSString 属性可以传递NSString或NSMutableString实例。如果你传递NSMutableString实例那么这意味着字符串的值可能后面会改变。让原创 2016-07-04 12:20:50 · 462 阅读 · 0 评论 -
UNRECOGNIZED SELECTOR SENT TO INSTANCE 问题快速定位的方法
开发中常见的一类崩溃错误是遇到:unrecognized selector sent to instance 0xaxxxx…而backtrace又无法明确说明错误在哪行代码,如何快速定位BUG呢?有时读代码一下很难找到是哪个instance出的问题,这时定制有效的DEBUG断点是最好的办法,方法如下:在Debug菜单中选择 Breakpoints -> Create Symb翻译 2016-07-25 13:57:55 · 1611 阅读 · 0 评论 -
The certificate used to sign "app名" has either expired
The certificate used to sign “app名” has either expired or has been revoked. An updated certificate is required to sign and install the application.解决: 打开“钥匙串访问”->我的证书:删除相关的证书 真机运行,Fix即可。原创 2016-06-25 19:39:55 · 807 阅读 · 0 评论 -
Tableview最后一行无法显示或者显示不全
用了popOverVC遇到一个问题: Tableview最后一行无法显示或者显示不全在控制器RootViewController中声明了一个UITableView类属性。其中RootViewController是navigationcontroller中的一个控制器@property(,)myTableView;初始化的时候,怕麻烦。初始化的时候——self.myTableView = [UITa原创 2016-06-25 17:15:19 · 2099 阅读 · 0 评论 -
注册自定义的单元格xib
如果我们需要自定义cell,那么就需要注册它,一般在viewDidLoad方法先注册 // 注册自定义的单元格的xib // 系统就能够按照NewsCell.xib的样式来自动新建单元格实例 [self.tableView registerNib:[UINib nibWithNibName:@"RegisterCell" bundle:nil] forCellReuseIdent原创 2016-05-09 15:10:43 · 1029 阅读 · 0 评论 -
UITableView取消多余的表格线条
当我们做一个tableView的时候,如果行数不够,下面就会出现很恶心的线条,如图那么我们如何去掉呢? 可能有些朋友会说,在下面根据row.count 再贴一个相对应的view,就可以遮掉线条了,这样做是可以,但是最好最简单的方法,还是self.tableView.tableFooterView = [UIView new];原创 2016-04-25 09:48:36 · 470 阅读 · 0 评论 -
NSOperationQueue 的 cancelAllOperations
取消了一个操作,它不会马上就发生。它会在未来的某个时候某人在“main”函数中明确地检查isCancelled==YES时被取消掉;否则,操作会一直执行到完成为止。因为整个线程池是异步的.cancelAllOperations 相当于 把你加入队列中的所有线程 cancel 但是 这个操作必须有 但是 不能作为你用“取消所有线程”的按钮 你点击取消 设置一个参数 iscancel ==YES原创 2016-05-30 20:41:51 · 683 阅读 · 0 评论 -
如何解决问题“This Class is not Key Value Coding-Compliant for the Key”
错误“这个类是不关键价值的关键标准与编码”是iOS开发这将导致一个应用程序来发布之时死机的通病。请仔细阅读,找出解决问题。这个错误经常是一个丢失的对象之间在故事板和一个IBOutlet在代码文件中的连接的结果。这将导致这方面的一个常见的情况是,当你不小心在代码中创建一个IBOutlet中不必要的,而你只是删除出口申报不除去故事板对象上的连接。对于小项目,查找和删除有问题的连接很原创 2016-05-26 18:04:40 · 60195 阅读 · 4 评论 -
(array.count - 1 )的坑
NSArray count 有一种 NSUInteger 类型,这是一个无符号整数。所以当array.count - 1,即便array.count = 0,但array.count-1!=1,它是一个非常大的数字(2 ^ 32 - 1或2 ^ 64 - 1)。这是一个使用无符号值的结果。你可以让你的循环正常工作,避免无符号数学原创 2016-04-15 21:36:23 · 682 阅读 · 0 评论 -
keyWindow的获取
UIWindow *keywindow = [[UIApplication sharedApplication] keyWindow]; 在控制器的viewDidLoad方法中直接获取是nil的,是因为delegate.m的makeKeyWindowAndVisible方法是是先调viewDidLoad方法先,makeKeyWindowAndVisible没有调用完,都没有当前的window,所以原创 2017-02-17 00:15:04 · 2638 阅读 · 0 评论