首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >错误:访问对象的retainCount时出现EXC_Bad_Access

错误:访问对象的retainCount时出现EXC_Bad_Access
EN

Stack Overflow用户
提问于 2011-04-26 18:17:22
回答 3查看 468关注 0票数 0

在头文件.h中

代码语言:javascript
复制
@interface MemoryAppDelegate:NSObject <UIApplicationDelegate> {
Class1 *class1_obj;
}

在实现文件.m中

代码语言:javascript
复制
@implementation Memory : (UIApplication*) application
{
 NSLog(@"Retain Count of class1_obj %d",[class1_obj retainCount]); //ouput retainCount is 0
 Class2 *class2_obj;
 NSLog(@"Retain Count of class2_obj %d",[class2_obj retainCount]); // gives EXC_Bad_Access error

与上面的代码一样,当我在头文件中声明一个对象并试图访问它的保留计数时,我得到的结果是0。但是如果我在实现文件中声明这个对象并访问它的retainCount,它就会抛出Bad_Access。您能告诉我为什么会发生这个错误吗?

EN

Stack Overflow用户

发布于 2011-04-26 18:20:29

我不知道你为什么要这么做,但是这段代码:

代码语言:javascript
复制
 Class2 *class2_obj;
 NSLog(@"Retain Count of class2_obj %d",[class2_obj retainCount]); // gives EXC_Bad_Access error

只创建指向特定类型对象的指针,而不是实际创建实例。所以访问它并询问它的retainCount (你一开始就不应该这样做)将导致有效的崩溃。因为它还不是一个有效的对象。请先尝试初始化它。

更新:如果你坚持这样做,这里有一些可能有效的方法

代码语言:javascript
复制
Class2 *class2_obj = [[Class2 alloc] init];
NSLog(@"Retain Count of class2_obj %d",[class2_obj retainCount]); // gives retain count of 1
[class2_obj release];
票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5788885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档