gpt4 book ai didi

ios - 调用保留属性时 TableViewController 崩溃?

转载 作者:行者123 更新时间:2023-12-01 19:28:51 25 4
gpt4 key购买 nike

我有一个 TableView Controller ,在初始化期间我设置了一个 NSArray 属性,然后在 cellForRowAtIndexPath 中使用它。方法在表格上显示数据。

但是,当我触摸一行时,一旦我调用这个保留的 NSArray 属性,它就会显示 EXC_BAD_ACCESS!

仅供引用,该属性的定义如下所示,并使用自定义 getter 函数:

@property (nonatomic,retain) NSArray *dataList;

在 .m 文件中:
@synthesize dataList;

- (NSArray *)dataList
{
if (!dataList)
{
NSString *p = [kind lowercaseString];
NSString *s = [[NSBundle mainBundle] pathForResource:p ofType:@"txt"];
NSLog(@"%@",s);

NSData *dataRep = [NSData dataWithContentsOfFile:s];
NSPropertyListFormat format;
dataList = [NSPropertyListSerialization propertyListFromData: dataRep
mutabilityOption: NSPropertyListImmutable
format: &format
errorDescription: nil];
if (dataList.count == 0)
NSLog(@"Fetch failed!");
}

return dataList;
}

有什么建议么?

最佳答案

这就是问题:

dataList = [NSPropertyListSerialization propertyListFromData ...

此函数不以 alloc 开头, copy , 或 retain ,因此它返回一个自动释放的对象。但是,您需要保留它以使其保持不变。

你有两个选择:
self.dataList = [NSPropertyListSerialization propertyListFromData ...

或者,
dataList = [[NSPropertyListSerialization propertyListFromData ...] retain];

关于ios - 调用保留属性时 TableViewController 崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4630733/

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