我正在尝试从NSDictionary
创建一个字典(不确定它应该是NSMutableDictionary
还是NSString
)到一个数组(不确定它是否应该是NSArray
或NSMutableArray
)。
属性:
@property(nonatomic, readonly) NSMutableDictionary * categories;
实现:
@synthesize categories = _categories;
- (NSMutableDictionary *)categories{
if(! _categories) {
for(PFObject * each in self.products) {
NSString * currentcategory = [each valueForKey:@"subtitle"];
NSArray * currentlist = [_categories objectForKey:currentcategory];
if(! currentlist) {
currentlist = [[NSArray alloc] init];
}
NSMutableArray * newArray = [currentlist mutableCopy];
[newArray addObject:each];
NSArray * newlist = [NSArray arrayWithArray:newArray];
[_categories setObject:newlist forKey:currentcategory];
}
}
NSLog(@"After constructor the value of the dictionary is %d", [_categories count]);
return _categories;
}
从调试NSLog
我意识到构造后字典是空的。这里有什么问题,我该如何改变呢?
答案 0 :(得分:6)
在代码行之后
if(! _categories) {
添加
_categories = [NSMutableDictionary new];
答案 1 :(得分:0)
如果你没有在代码中的某处初始化_category数组。 你必须在
中实例化它if(!_categories)
您的NSMutableArray _categories实例尚未分配和初始化。
要创建NSMutableArray的实例,只需添加
_categories = [NSMutableArray arrayWithCapacity:0];