#线程异步问题
###tableview reloadData
tableView reloadData 属于主线程异步执行方法,当有些代码需要确保在tableView reloadData完成后再执行时,可以使用GCD方式将代码同样放置到主线程异步执行
123 | dispatch_async(dispatch_get_main_queue(), ^{ //your code}) |
###UITableView Always change the dataSource and reloadData in the mainThread.
###uiview layoutSubviews
在uiview初始化后 layoutSubviews不会立即执行,中间可能存在时间差,因此若有需要layoutSubviews执行后,再执行的代码,也可同样用上面的方式
123 | dispatch_async(dispatch_get_main_queue(), ^{ //your code}) |
e.p:洋葱数学中,交互视频出选项,当 大专栏 iOS开发常见问题HMSideMenu的layoutSubviews未执行,就显示选项时,会造成第一个选项无法出现的Bug
###extern const static
123 | const NSString *HSCoder1 = @"111";//*HSCoder"不能被修改, "HSCoder"能被修改NSString const *HSCoder2 = @"222";//"*HSCoder"不能被修改, "HSCoder"能被修改NSString * const HSCoder3 = @"333";//"HSCoder"不能被修改,"*HSCoder"能被修g改 |
extern如果想要一个全局常量,就需要使用extern,例如在.h中
1 | extern NSString * const str; |
在.m中:
1 | NSString * const str = @"aaa"; |
来源:https://www.cnblogs.com/liuzhongrong/p/12289595.html