gpt4 book ai didi

iphone - 重写 NSObject 的描述方法

转载 作者:行者123 更新时间:2023-12-03 20:52:36 26 4
gpt4 key购买 nike

我不确定这是否是模拟器问题,但我不记得以前使用 iPad 5.0 模拟器及以下版本时遇到过此问题(现在我运行 iPad 5.1 模拟器)。我将 Condition 对象的描述方法重写为:

- (NSString *)description {
NSString *str = [[NSString alloc] initWithFormat:@"Condition: %@", _conditionName];
return [str autorelease];
}

我有一个这些对象的数组。我的值(value)观都是有效的。当我这样做时:

for (Condition *p in self.reportsArray) {
NSLog(@"%@", [p description]);
}

它记录了我的所有值,然后最后崩溃了。当我查看带有 Zombies 的 Instruments 时,最后 4 个调用是

-[NSPlaceHolderString initWithBytes:length:encoding:]
+[NSString stringWithUTF8String:]
-[NSAutoreleasePool release]
-[NSPlaceholderString initWithFormat:locale:arguments:]

我是否正确地覆盖了描述?

编辑:在 Instruments 中,我得到:消息已发送到地址为 0x8ccf190 的已释放对象(僵尸)。在应用程序本身上,我得到 EXC_BAD_ACCESS。

最佳答案

从您的描述方法返回的字符串似乎发布得太早了。

尝试使用 stringWithFormat: 类方法重写您的方法。

- (NSString *)description {
return [NSString stringWithFormat:@"Condition: %@", _conditionName];
}

关于iphone - 重写 NSObject 的描述方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com