我将问题缩小到没有正确分配内存。我有一个名为subject的NSMutableArray作为Category的成员。当我用一系列主题填充该类别时,它不会存储。
我不确定如何以及在何处为主题分配内存,这就是我认为我的问题所在。
以下是摘录:
Category *cat = [[Category alloc] init];
cat.category_title = [result_categories stringForColumn:@"CATEGORY"];
QuotesAppDelegate *appDelegate = (QuotesAppDelegate *)[[UIApplication sharedApplication] delegate];
for (Subject *sb in appDelegate.subjects){
if([cat.category_title isEqualToString:sb.category_title]){
[cat.subjects addObject:sb];
NSLog(@"Adding subject: %@ cat.subjects.count=%i", sb.title, cat.subjects.count);
}
}
(上面的日志确实打印了cat.subject名称,但它没有打印subject.count)
答案 0 :(得分:4)
您是否已将内存分配给cat.subjects
cat.subject = [[NSMutableArray alloc] init];
或
subject = [[NSMutableArray alloc] init];
你的Category
课程中的?如果没有,那就去做吧。这可能是问题之一。
<强>更新强>
首先将代码从Category *cat = [Category alloc];
更改为Category *cat = [[Category alloc] init];
并将您的初始化更改为
- (id)init {
self = [super init];
if (self) {
subjects = [[NSMutableArray alloc] init];
}
return self;
}