私はPHPのバックグラウンドを持つ誰かとしてこの質問をしています。PHPでは、配列の作成はめちゃくちゃ簡単です:$ numberArray = array('minute' => $ minutes、'hour' = $ hour)など。
Obj-c / Cocoaに入ると、NSArrayはフラット配列のみを格納していることに気づきました。
NSMuteableArray *numberArray = [[NSMuteableArray init] alloc];
[numberArray insertObject:minute atIndex:0];
// not sure if above is correct, but it's a moot point
// Creates a non-associate array (numberArray = '1', '2', '3', etc.)
NSDictionaryを使用すると、連想配列を作成できますが、値はオブジェクトである必要があります。
NSMuteableDictionary *numberArray = [[NSMuteableDictionary alloc] init];
[numberArray setObject:minute forKey:@"minutes"];
// numberArray creates array of ('minute'=>minuteObject, 'hour'=>hourObject, etc.)
これが私の質問です:VALUEがオブジェクト以外のものである配列を作成できる配列または辞書の形式は何ですか?現在の時刻の分/時間を取得して配列に挿入するメソッドを作成しようとしています。そのメソッドから、アプリケーションの他の場所で必要になったときに、このメソッドを呼び出して、キーから適切な値を取得できます。これが私の完全なコードです:
NSDate *now = [NSDate date];
NSCalendar *gregorianCal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *dateComps = [gregorianCal components: (NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate: now];
// Then use it
NSUInteger minute = [dateComps minute];
NSUInteger hour = [dateComps hour];
NSMutableDictionary *timeArray = [[NSMutableDictionary alloc] init];
[timeArray setValue:minute forKey:@"minute"];
私の仮定のいずれかが間違っている場合は、私を訂正してください。アプリ開発に不慣れな人として、私の以前の発言は、「私は正しい、あなたは間違っている」というよりも、「これは私がこれまでに学んだことです。私が間違っている場合は訂正してください」というものでした。