程序开发中,在测试完成后发布上线,上架APP经常遇到崩溃问题,很多时候都不知道错误出在哪里了,总结一下项目中遇到的问题:
初始化NSDictionary、NSArray
初始化有两种写法:1)[NSDictionary dictionaryWithObjectsAndKeys:<#(nonnull id), ...#>, nil]
2) @{@"key":value}
崩溃就出现在第二种简化初始化方法,如果value是一个变量,然后在为nil或者null,这样初始化就会crash,用第一种方法初始化会避免程序crash。
解决办法,在对字典初始化时候,一定要先判断value是否为nil,在进行操作,数组类似。
在字典取值时,要先判断字典是否为nil,keys 是否包含key等操作,数组要注意不要越界导致crash。
字典初始化crash:-[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to&
数组越界: -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty arra