NSMutable Array将不会分配,仍然为零
XML解析器试图分配其委托的NSMutable数组,名为masterCodeList。从下面的代码中,你会看到这个失败。 (我是新手)NSMutable Array将不会分配,仍然为零
if (dataController.masterCodeList == nil){
dataController.masterCodeList =[[NSMutableArray alloc] init];
if (dataController.masterCodeList == nil) {
NSLog(@"the init of the mutable array did NOT work");
}
}
我每次都收到the init of the mutable array did NOT work
消息。我正在导入dataController头。
#import "CodeDataController.h"
我没有收到其他错误消息,解析器解析正常,应用程序运行平稳,没有内容。
在此先感谢。
你的masterCodeList声明是什么样的? 它是一个属性,它是合成的,还是你自己创造了一个setter/getter?
另一种方法是使用中间的占位符,即尝试:
NSMutableArray *temp = [[NSMutableArray alloc] init];
[dataController setMasterCodeList:temp];
,看看是否正确设置你的阵列。
(注:即代码可能会或可能不会有泄漏)
这是一个属性: 财产(非原子,副本)的NSMutableArray * masterCodeList; ,它是合成的!?! 合成masterCodeList = _masterCodeList ; 我以前试过一个临时数组,它没有工作(我会再试一次)。我也试过这个,它不工作: [dataController setMasterCodeList:[[N SMutableArray alloc] init]]; – AlexMath
你可以张贴在这个类你对DataController类对象的实现,并从其他类的属性?
您也可能想尝试使用isEqual方法而不是== nil。
如果它是一个指针,那么使用isEqual方法会为您做什么? ==应该很好。当然,如果你真的想成为一个合法的C风格程序员,你可以这样做(!dataController.masterCodeList) – Jarsen
你使用ARC吗?在你的dataController对象中如何定义“masterCodeList”? –
是dataController nill? – rooster117
此外,为什么你的底层(子)XML解析器试图分配你的委托(可能是父类的“masterCodeList”。为什么委托没有这样做? – trumpetlicks