【发布时间】:2023-03-29 14:40:01
【问题描述】:
我正在尝试开发一个将字典添加到数组中的函数。
这个函数看起来是这样但不起作用:
在CBLModel的执行中我有emailList的属性。我想成为NSArray 的NSDictionary 的属性。
-(void) addEmail: (NSDictionary*) c{
NSMutableArray* mutArrayEmail= [NSMutableArray arrayWithObject: self.emailList];
[mutArrayEmail addObject:c];
self.emailList = [NSArray arrayWithObject:mutArrayEmail];
}
而实现会是这样的:
[persInf addEmail: email1];
[persInf addEmail: email2];
[persInf addEmail: email3];
有什么帮助吗?
编辑
感谢大家的回复。
我在主代码中插入了以下内容(为了不更容易测试一切):
NSDictionary *inventory = @{
@"Mercedes-Benz SLK250" : [NSNumber numberWithInt:13],
@"Mercedes-Benz E350" : [NSNumber numberWithInt:22],
@"BMW M3 Coupe" : [NSNumber numberWithInt:19],
@"BMW X6" : [NSNumber numberWithInt:16],
};
NSMutableArray *nsmut= [[NSMutableArray alloc] init];
[nsmut addObject: inventory];
[nsmut addObject: inventory];
[nsmut addObject: inventory];
NSArray *nsarray= [NSArray arrayWithArray:nsmut];
[persInf setEmailList:nsarray];
在这之后我得到一个错误。我发布此代码示例可能更容易看出错误可能在哪里
【问题讨论】:
-
是的,数组只需要创建一次,
emailList需要声明为可变数组。 -
@HotLicks 非常感谢,但我不能将它声明为可变数组,否则它在 CBLModel 中不起作用
-
为什么不呢?你可以在任何可以使用 NSArray 的地方使用 NSMutableArray。
标签: objective-c cocoa-touch nsarray nsdictionary