天天看点

iOS开发常见bug统计

一.编译器提示类似file is universal (2 slices) but does not contain a(n) armv7s slice:…… for architecture armv7s的错误。

是因为此版本的库还不支持arm7s的环境,将Build Settings项中的Valid ArchiteCtures中的arm7s删除即可解决。

二.ld: 1 duplicate symbol forarchitecture x86_64

clang:error: linker command failed with exit code 1 (use -v to see invocation)

有以下三种情况

1.文件重复 或者  在多个文件中重复定义某个东西

2.导入第三方库造成的 #import "XXX.h" 写成了#import"XXX.m"

3.找到Build settings->Linking->Other Linker Flags,将此属性修改成-all_load

三.用Cocoapods添加第三方类库出现‘XCTest/XCTest.h’file not found

1、点击Pods - TARGETS -[Pods-你的项目名Tests-Specta]-BuildSettings ,搜索Framework sear。

2、在Framework Search Paths 后双击,点击加号新增path:

$(PLATFORM_DIR)/Developer/Library/Frameworks

四、添加第三方类库造成的linker command failedwith exit code 1 (use -v to see invocation)的错误调试

解决方法:在工作左边导航栏Target–>BuildPhases–>compile Sources中,第三库库的所有.m文件都添加到里面,然后编译通过了;

错误原因:第三方类库文件时直接将其拖拽到工程之中,编译的的时候Xcode也没有自动引用,所以造成这样错误,这就需要我们手动添加。

五、对于未定义的属性所导致的bug

解决办法,在对应的类中添加如下语句:

-(void)setValue:(id)value forUndefinedKey:(NSString *)key

当使用setValuesForKeysWithDictionary:方法时,对于数据模型中缺少的、不能与任何键配对的属性的时候,系统会自动调用setValue:forUndefinedKey:这个方法,该方法默认的实现会引发一个NSUndefinedKeyExceptiony异常。

如果想要程序在运行过程中不引发任何异常信息且正常工作,可以让数据模型类重写setValue:forUndefinedKey:方法以覆盖默认实现,而且可以通过这个方法的两个参数获得无法配对键值。

六. loaded the "xx" nib butthe view outlet was not set.

没有把xib的view设置为XXViewController的view

设置File‘sOwner,可以理解为设置这个文件归谁所有,对File‘s Owner和view进行连线。连线是因为一个xib中可能会有多个view,在storyboard中默认就已经进行了连线

七.selector警告

  performSelectormay cause a leak because its selector is unknown