摘要: 1.符号化crash日志需要3样东西:1).crash日志本身(如:example.crash),从Xcode的organizer导出或者来自Itunes Connect.2).crash日志所对应的.app包(如:example.app)如果你有的是.ipa包,你可以解压后在Payload/文件夹... 阅读全文
posted @ 2014-12-29 15:37 gagag 阅读(1528) 评论(0) 推荐(0) 编辑
摘要: http://stackoverflow.com/questions/18526909/whether-i-should-use-propertynonatomic-copy-or-propertynonatomic-strong-fo'copy' will cause the setter for... 阅读全文
posted @ 2014-11-27 14:29 gagag 阅读(1636) 评论(0) 推荐(0) 编辑
摘要: 1.GCD设置一个timer计时器- (void)awakeFromNib { __weak id weakSelf = self; double delayInSeconds = 0.25; _timer =dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0,dispatch_get_main_queue()); dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0),(unsigned)(delayInSeconds * NSEC_PER_SEC),... 阅读全文
posted @ 2013-09-02 15:06 gagag 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 1.ARC空声明变量 使用ARC的另一个优势是所有未初始化的变量默认都是“空值化”的。这意味着像下面这样的声明使用ARC编译后指向的是空值(nil): NSObject *myObject1,*myObjects2; 不过要注意的是,与其他高级编程语言不同,ARC不会自动将标量的值设置为零。 这意味着以下几行代码声明的变量其值并不等于零: int a; int b;2.Objective-C命名约定 如果你在Person对象中写了一个叫做newPersonName的方法,ARC会认为该方法返回一个分配过的对象。使用ARC(或者不适用ARC)编译过的调用代码和方法newPerson... 阅读全文
posted @ 2013-07-11 14:17 gagag 阅读(4762) 评论(1) 推荐(0) 编辑
摘要: 四.使用关联引用为分类添加数据 虽然不能在分类中创建实例变量,但是可以创建关联引用(associative reference)。通过关联引用,你可以向任何对象中添加键-值(key-value)数据。 假如有一个Person类,这个person类可能会被用在其他程序中,有些电子邮件地址(emailAddress)这个字段是有意义的,有些时候这个字段是没有用的。一个比较好的解决方案就是使用分类为Person类添加一个名为emailAddress的属性,这样可以避免不需要emailAddress时的开销。或许Person类并不是你写的,改类的维护者也不会为你添加这个属性。这种情况下,要怎么解决.. 阅读全文
posted @ 2013-06-24 17:38 gagag 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 原文:http://www.noxeos.com/2011/07/29/c-const-static-keywords/C: const and static keywordsOk, once and for all, I’ll try to clarify to meaning of the ‘const’ and ‘static’ keywords in C (it applies to Objective-C and C++ too).I’m just tired of questions about this on StackOverflow.Objective-C programme 阅读全文
posted @ 2013-06-24 15:09 gagag 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 转自http://www.cnblogs.com/zhulin/archive/2012/03/26/2417860.htmlUDID替代方案背景:大多数应用都会用到苹果设备的UDID号,UDID通常有以下两种用途:1)用于一些统计与分析目的;【第三方统计工具如友盟,广告商如ADMOB等】2)将UDID作为用户ID来唯一识别用户,省去用户名,密码等注册过程。不过,2011年时,苹果就宣布ios5.0以后的系统中将不再支持以下方法获取用户的UDID【苹果设备的唯一识别码】:[UIDevice currentDevice] uniqueIdentifier];【注:对于已越狱了的设备,UDID并不 阅读全文
posted @ 2013-06-22 15:44 gagag 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 一.ARC1.ARC环境下可以使用-(void)dealloc{};处理一些事情(比如移除KVO观察),但不要调用[super dealloc];2.ARC与非ARC混编要注意符合Cocoa命名约定,比如不能用copyRight这样的方法名,需改成copyright。或使用NS_RETURNS_RETAINED或NS_RETURNS_NOT_RETAINED告诉编译器使用哪种内存管理规则,这些修饰符在NSObjCRuntime.h中定义的。3.readonlyString在类扩展部分被重新定义时使用readwrite关键字进行修饰,这样一来便为该属性创建了一个私有的设置方法(setter)。@ 阅读全文
posted @ 2013-06-21 11:29 gagag 阅读(383) 评论(0) 推荐(0) 编辑
摘要: find ./ -name "*.a" | xargs grep "abc" 阅读全文
posted @ 2013-06-05 14:35 gagag 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 1.由标量直接创建NSNumber NSNumber *myNumber = [NSNumber numberWithInt:3]; NSNumber *yesValue = [NSNumber numberWithBOOL:YES]; 有了LLVM4,简化为: NSNumber *myNumber = @3 NSNumber *yesValue = @YES;注意不要加双引号,@3会转换为NSNumber对象,而@"3"会转换成NSString。默认情况下,数字标量被当做有符号整型,小数标量被当做double类型。如下面代码所示,可以通过添加F后最来告诉编译器将标量转为f 阅读全文
posted @ 2013-05-29 17:57 gagag 阅读(393) 评论(0) 推荐(0) 编辑