今天下午模拟器运行都ok的,放到真机上就崩溃,崩溃在一些汇编句子上。没有其他线索,只知道调用了一个地址的方法,但是这个地址没有这个方法。
只好通过注释代码来查。最后查到是因为 format 没有传参数引起 ,“%%@” 写到国际化文件里面,但是对应的值是 "%@",导致
[NSString stringWithFormat:NSLocalizedString(@"%%@",nil)] ; 这句话出错了。
知识点:
1. Format %号时,如果你想字符串里面保留 % ,则需要写为 %%
2. NSString的 Format 需要小心(print 这些也要小心,可变参数的函数都要小心啦),如果参数少了,在找参时数据溢出非法访问,所以肯定会调用失败。而且错的没有线索。
所以,写 Format 的时候要小心啊 !!!