我以 PHP 背景的人的身份问这个问题。在 php 中,创建数组非常简单: $numberArray = array('minute'=>$minute, '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"];
如果我的任何假设有误,请纠正我。作为一个刚接触应用程序开发的人,我之前的陈述更多的是“这是我到目前为止所学到的,如果我错了请纠正我”,而不是“我是对的,你错了”。