您的位置:首页 > 移动开发 > IOS开发

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();

这样编译就可以通过了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: