`
- 浏览:
85435 次
- 性别:
- 来自:
北京
-
一,Unknown type name ....
如果是报这个错误,多半是你的对象类型没有被识别,检查是不是没有引用对应的库或者头文件在你的文件头部分,还有可能是循环引用导致的,循环引用的解决方法就是
Class A 中用import Class B
Class B的.h头文件里用@class A;
.m文件里再用import
二,EXC_BAD_ACCESS
首先说一下 EXC_BAD_ACCESS 这个错误,可以这么说,90%的错误来源在于对一个已经释放的对象进行release操作。
Objective-C 这段代码有三个致命问题:1、内存泄露;2、错误释放;3、造成 EXC_BAD_ACCESS 错误。
1, NSString* s = [[NSString alloc]initWithString:@”This is a test string”]; 创建了一个 NSString Object,随后的 s = [s substringFromIndex:[s rangeOfString:@"a"].location]; 执行后,导致创建的对象引用消失,直接造成内存泄露。
2,错误释放。[s release]; 这个问题,原因之一是一个逻辑错误,以为 s 还是我们最初创建的那个 NSString 对象。第二是因为从 substringFromIndex:(NSUInteger i) 这个方法返回的 NSString 对象,并不需要我们来释放,它其实是一个被 substringFromIndex 方法标记为 autorelease 的对象。如果我们强行的释放了它,那么会造成 EXC_BAD_ACCESS 问题。
3, EXC_BAD_ACCESS。由于 s 指向的 NSString 对象被标记为 autorelease, 则在 NSAutoreleasePool 中已有记录。但是由于我们在前面错误的释放了该对象,则当 [pool drain] 的时候,NSAutoreleasePool 又一次的对它记录的 s 对象调用了 release 方法,但这个时候 s 已经被释放不复存在,则直接导致了 EXC_BAD_ACCESS问题。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
iOS学习笔记之QuartzCore框架.pdf
iOS学习笔记之QuartzCore框架.rar
ios学习笔记中用到的美化按钮的背景图,iphone风格
ios学习笔记---simpleping 适合初学者练习使用。只是一个小的demo
是之前 IOS学习笔记上补充了一些 这边只是备份以后用到好下载 也欢迎你们来下载 学习 ^ ^
ios学习笔记 --sqllite3 创建 插入 查询 适合新手学习 加油
ios安全学习笔记, 供需要的人学习. 对iOS 感兴趣的同学可以看看
苹果iOS8.1.2正式版修复Bug汇总
iOS学习笔记,技术道路走到黑.zip
NULL 博文链接:https://ff20081528.iteye.com/blog/1678018
这里面讲的都是些平常见的事情,平时看看,对自己开发能力有所提高
我自学iOS开发时做的笔记,主要是OC语言的语法部分,没有包fundation框架,以我的亲身感受总结出iOS初学者容易犯的错误及疑问的地方,对本文如果意见欢迎与我交流,谢谢
IOS 菜鸟笔记 之 项目 三 源码 blog地址:http://blog.csdn.net/tim_shadow/article/details/45717561
ios-iOS各种功能汇总.zip
// [self changeNavigationState]; //改变状态栏 和 导航栏的状态 // [self changeImageScale];...// [self viewAnimation]; //View的动画 // [self imgToGrayimg]; //UIImage转为灰度图 // [self ...
懒人笔记 一个 iOS 开源笔记 App.zip,【已不再维护】超级记事本 for iOS
个人整理超精密的iOS笔记.pdf