iOS异常、错误汇总(一)
2015-09-02 19:54
337 查看
1.
Xcode界面编辑器 could not insert new outlet connection
1.在新建类的时候没有选择将这个类加入到对应的“Target”中。
2.重新将文件加入项目
操作步骤就是选中出问题的.m和.h文件,点删除键,然后选“Remove Reference”,这样就不会真正删除文件。接着选“File -> Add Files to ...”菜单,在文件选择界面选择刚才的.m文件和.h文件将他们重新加入项目中。
3. 直接删除DeriveData
操作步骤是关闭当前项目,然后关闭Xcode,然后通过Terminal或者是Finder找到下面的目录:
~/Library/Developer/XCode/DerivedData
在里面找到以你的项目开头的文件,将他们删除。
接着重新启动Xcode
4. 在Organizer中删除项目的DeriveData
如果你对Mac操作系统不了解,不知道如果操作第2种解决方法,有一个更加直接的方法,就是在Xcode中选择“Windows->Organizer”,然后选择“Projects”,选中你正在处理的项目,点击“DeriveData”对应的“Delete”按钮,Xcode会删除该项目的DeriveData,然后自动重新生成一个。
2、
表视图相关:
写了:const NSString *cellReuseIdentifier = @"cell";
警告:sending 'const NSString *' to parameter of type 'NSString *' discards qualifiers
换成:NSString* const cellReuseIdentifier = @"cell";
前者相当于指针本身不可更改,后者为指针指向的内容不可更改。
3.
ARC forbids(禁止) explicit(显示) message send of 'dealloc'
4.
error: 'for' loop initial declarations are only allowed in C99 mode
比如写出下面这段程序:
for (int j = i + 1; j < sizeof(a)/sizeof(a[0]); j++)
do_something();
然后用gcc编译,会报 ‘for’ loop initial declarations are only allowed in C99 mode的错误。
原因是在循环条件中声明变量的话,只在C99标准中支持,C90标准不支持。
所以改成:
int j;
for (j = i + 1; j < sizeof(a)/sizeof(a[0]); j++)
do_something();
这样编译就可以通过了。
Xcode界面编辑器 could not insert new outlet connection
1.在新建类的时候没有选择将这个类加入到对应的“Target”中。
2.重新将文件加入项目
操作步骤就是选中出问题的.m和.h文件,点删除键,然后选“Remove Reference”,这样就不会真正删除文件。接着选“File -> Add Files to ...”菜单,在文件选择界面选择刚才的.m文件和.h文件将他们重新加入项目中。
3. 直接删除DeriveData
操作步骤是关闭当前项目,然后关闭Xcode,然后通过Terminal或者是Finder找到下面的目录:
~/Library/Developer/XCode/DerivedData
在里面找到以你的项目开头的文件,将他们删除。
接着重新启动Xcode
4. 在Organizer中删除项目的DeriveData
如果你对Mac操作系统不了解,不知道如果操作第2种解决方法,有一个更加直接的方法,就是在Xcode中选择“Windows->Organizer”,然后选择“Projects”,选中你正在处理的项目,点击“DeriveData”对应的“Delete”按钮,Xcode会删除该项目的DeriveData,然后自动重新生成一个。
2、
表视图相关:
写了:const NSString *cellReuseIdentifier = @"cell";
警告:sending 'const NSString *' to parameter of type 'NSString *' discards qualifiers
换成:NSString* const cellReuseIdentifier = @"cell";
前者相当于指针本身不可更改,后者为指针指向的内容不可更改。
3.
ARC forbids(禁止) explicit(显示) message send of 'dealloc'
4.
error: 'for' loop initial declarations are only allowed in C99 mode
比如写出下面这段程序:
for (int j = i + 1; j < sizeof(a)/sizeof(a[0]); j++)
do_something();
然后用gcc编译,会报 ‘for’ loop initial declarations are only allowed in C99 mode的错误。
原因是在循环条件中声明变量的话,只在C99标准中支持,C90标准不支持。
所以改成:
int j;
for (j = i + 1; j < sizeof(a)/sizeof(a[0]); j++)
do_something();
这样编译就可以通过了。
相关文章推荐
- iOS 播放音频的几种方法
- IOS开发技巧快速生成二维码
- iOS平台下的加密
- ios AVPlayer无法在线播放视频
- iOS高级-QuartzCore框架-CALayer图层
- 适用于IOS的几种必须会用的工具
- 一般企业如何处理IOS 检查更新
- iOS如何绘制圆
- iOS项目开发小技巧 (五) --检测是否打开应用定位及跳到系统设置定位页
- IOS:图片缓存
- iOS生成随机数
- iOS工程使用cocoaPods。动手让你的工程由xcodeproj变身为.xcworkspace
- iOS 添加第三方字体 .ttf
- ios软件开发 获取手势点击视图的tag
- ios 开发 中文和英文状态下 键盘的变化 textview 对键盘的适应
- IOS -Date
- iOS之集合对象:将NSArray和NSDictionary两个集合对象写到一个文件中
- ios开发时,键盘遮挡输入框解决方法
- runtime 运行时机制 完全解读
- iOS开发日记14-NSFileManager(沙盒和清除缓存)