iOS异常、错误汇总(一)

来源:互联网 发布:aspen8.4软件下载 编辑:程序博客网 时间:2024/05/22 01:31

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();
这样编译就可以通过了。



0 0