1、iOS开发中编译通过Success但有红色警告,一般情况下先Clear再Build应该就OK了但由于移动了相关文件或框架,会使得这种问题一直无法解决,尤其是对于有强迫症的童鞋来讲这是无法忍受的,其实并不会影响运行,但总归不爽
2、还有一个办法可以尝试来解决这个问题,就是删除Xcode的缓存目录[……]
1、iOS开发中编译通过Success但有红色警告,一般情况下先Clear再Build应该就OK了但由于移动了相关文件或框架,会使得这种问题一直无法解决,尤其是对于有强迫症的童鞋来讲这是无法忍受的,其实并不会影响运行,但总归不爽
2、还有一个办法可以尝试来解决这个问题,就是删除Xcode的缓存目录[……]
1、苹果官方文档中的写法
1 2 3 4 5 6 | static AccountManager *DefaultManager = nil; + (AccountManager *)defaultManager { if (!DefaultManager) DefaultManager = [[self allocWithZone:NULL] init]; return DefaultManager; } |
2、iOS4之后有了另外一种写法:
1 2 3 4 5 6 7 8 9 | + (AccountManager *)sharedManager { static AccountManager *sharedAccountManagerInstance = nil; static dispatch_once_t predicate; dispatch_once(&predicate, ^{ sharedAccountManagerInstance = [[self alloc] init]; }); return sharedAccountManagerInstance; } |
3、该写法来自 objcolumnist,文中提到,该写法具有以下几个特性:[……]
1、虽然说MacBook上带GPS功能,但xCode里的iPhone模拟器不能调用笔记本的GPS来进行定位,或许是兼顾其他OS不带GPS功能而有意屏蔽的吧,先不管这个多,如果我们在模拟器上调试程序时需要使用到GPS定位,如何模拟呢。
2、iOS模拟器–调试–位置–自定义位置,可以自行输入经纬度将位置信息传递给模拟器。
3、好,那么问题来了,我怎么知道我当前的位置或者我需要模拟的位置经纬度呢?不用担心,Google地图已经帮我们做了这个事情了。[……]
1、NSOperation的两个子类NSBlockOperation与NSInvocationOperation,前者通过Block实现队列执行体,后者通过调用方法实现。
2、创建好NSOperation任务后,加入到系统队列,分为自定义队列即通过NSOperationQueue创建,或加入到主队列[NSOperationQueue mainQueue]
3、以上两步即可搞定,NSOperation/NSOperationQueue中程序不需要关心同步/异步、串行/并行问题,由框架自动处理,因此使用起来更方便更安全。
4、操作任务一添加到队列中即会执行,这一点与GCD不同。
5、如果需要指定任务的先后执行任务,可使用NSOperation的 addDependency: 方法,如 [op2 addDependency:op1]表示op2依赖于op1,因此会在op1后被执行。(注意不要出现循环依赖)
6、如果需要限制线程数,可通过NSOperationQueue的 setMaxConcurrentOperationCount: 方法实现,如图片下载任务在WiFi环境中线程数为6,3G环境中为3[……]