这里我使用NSMutableArray来存储日期,然后我尝试设置键并在字典中分配ArrayValue但应用程序崩溃了,请帮帮我
感谢ADvance
Here i tried the code for your reference:
[DateArray addObject:dateString]; //NSMutablArray
NSMutableDictionary *myDictionary =[[NSMutableDictionary alloc]init];
[myDictionary setObject:DateArray forKey:@"Date"]; //put array value and set key in NSDictionary.
答案 0 :(得分:9)
NSDictionary类是不可变的。您必须转换为NSMutableDictionary。
答案 1 :(得分:2)
您正在使用NSDictionary。您应该使用NSMutableDictionary。 NSDictionary是不可变的。如果您想使用NSDictionary,请使用以下方法:
- (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys;
答案 2 :(得分:2)
如果您使用的是XCode 4.4或更高版本,您可以这样做:
[dateArray addObject:dateString]; //NSMutablArray
NSDictionary *myDictionary = @{ @"Date", dateArray };
答案 3 :(得分:0)
当您使用NSDictionary
NSMutableDictionary
试试这一行:
NSMutableDictionary *myDictionary = [[NSMutableDictionary alloc] init];
iOS中的大多数集合类都具有可变和不可变的版本(即
)NSArray -> NSMutableArray
NSSet -> NSMutableSet
NSDictionary -> NSMutableDictionary
(and others)
可变版本将允许您修改内容。但是,如果您知道自己不打算更改它,那么使用非可变版本的速度会稍快一些。
您可以(通常)使用mutableCopy
方法从不可变的类中获取可变类,即
// This array can't be changed
NSArray *myArray = @[ @"A", @"B", @"C" ];
// This array contains everything from the previous array but can now be modified
MSMutableArray myArray2 = [myArray mutableCopy];
注意:还有其他类具有可变子类,即NSURL
- > NSMutableURL
答案 4 :(得分:-2)
这样做:
for(int i=0;i<[DateArray count]; i++)
{
[myDictionary addObject:[DateArray objectAtIndex:i] forKey:@"Date"];
}