iOS应用开发 - 开发经验总结(常见编译报错问题)持续更新中

一、没有将sqlite3.dylib加载到framework库文件
  • 错误信息
    “_sqlite3_bind_blob”, referenced from:
  • 解决方法:
    将 sqlite3.dylib加载到framework
二、如果引用少了文件或缺少导入一些库都会有这样的报错`
  • 错误信息
Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_FriendTrendsViewController", referenced from:
      objc-class-ref in TabBarController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
  • 解决方法:


    iOS应用开发 - 开发经验总结(常见编译报错问题)持续更新中_第1张图片
三、控制器加载控制器视图时控制器类名前缀跟项目中的UIView Xib文件重名
  • 错误信息
**Terminating app due to uncaught exception 'NSInternalInconsistencyException',
 reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "BugTestView"
 nib but the view outlet was not set.'**
  • 报错原因

    • 以下为控制器视图加载优先顺序报错原因在第4条
      1、用系统的loadView方法创建控制器的视图
      2、如果指定加载某个storyboard文件做控制器的视图,就会加载storyboard里面的描述去创建view
      3、如果指定读取某个xib文件做控制器的视图,就根据指定的xib文件去加载创建
      4、如果有xib文件名和控制器的类名前缀(也就是去掉controller)的名字一样的 xib文件,就会用这个xib文件来创建控件器的视图 【例:控件器的名为 TDViewController, xib文件名为 TDView.xib】
      5、找和控制器同名的xib文件去创建
      6、如果以上都没有就创建一个空的控件器的视图;
  • 解决方法:


    iOS应用开发 - 开发经验总结(常见编译报错问题)持续更新中_第2张图片
    Paste_Image.png
四、使用self.collectionView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive输出错误信息
  • 错误信息
-[UIWindow endDisablingInterfaceAutorotationAnimated:] called on 
>
 without matching -beginDisablingInterfaceAutorotation. Ignoring.\\
  • 报错原因
    系统两次尝试对keypad调用endDisablingInterfaceAutorotationAnimated,一次是拖动keypad出屏幕,另一次是textView等触发keypad的控件失去焦点时触发。
五、duplicate报错
  • 报错信息


    iOS应用开发 - 开发经验总结(常见编译报错问题)持续更新中_第3张图片
    Paste_Image.png
  • 报错原因(处理方法)

  • 1.文件目录里有两个一样的类(删除重复的一个类)

  • 2.导入了.m文件(修改成.h文件)

  • 3.引用.c文件时,方法不是静态方法

你可能感兴趣的:(iOS应用开发 - 开发经验总结(常见编译报错问题)持续更新中)