3

ここでは、NSMutableArrayを使用して日付を保存しています。次に、キーを設定して辞書にArrayValueを割り当てようとしましたが、アプリがクラッシュしました。助けてください。

前もって感謝します

 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.
4

5 に答える 5

10

NSDictionaryクラスは不変です。NSMutableDictionaryに変換する必要があります。

于 2012-08-09T11:51:39.047 に答える
2

NSDictionaryを使用しています。NSMutableDictionaryを使用する必要があります。NSDictionaryは不変です。NSDictionaryを使用する場合は、以下の方法を使用してください。

- (id)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys;
于 2012-08-09T11:51:34.177 に答える
2

XCodeバージョン4.4以降を使用している場合は、次のようにすることができます。

[dateArray addObject:dateString]; //NSMutablArray 
NSDictionary *myDictionary = @{ @"Date", dateArray };
于 2012-08-09T11:56:00.043 に答える
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

于 2012-08-09T11:59:19.340 に答える
-2

このようにしてください:

for(int i=0;i<[DateArray count]; i++)
{
   [myDictionary addObject:[DateArray objectAtIndex:i] forKey:@"Date"];
}
于 2012-08-09T11:51:20.383 に答える