我正在创建一个NSdictionarys数组并将该数组放入NSUserDefaults中。然后我将数组数据放在最近添加的tableview中。我试图得到它,因此它将存储添加到该数组的5个最新对象。我怎么能这样做?以下是我的代码:
- (IBAction)searchButton:(UIButton *)sender {
[_jobDic setObject:_jobField.text forKey:@"jobRecent"];
[_jobDic setObject:_locationField.text forKey:@"locationRecent"];
[_recentJobArray addObject:_jobDic];
[_recentDefaults setObject:_recentJobArray forKey:@"recentJobs"]
[_recentDefaults synchronize];
}
答案 0 :(得分:2)
假设您指的是_recentJobArray
,您可以这样做:
if (_recentJobArray.count == 5) {
[_recentJonArray removeObjectAtIndex:0]; // remove oldest
}
[_recentJobArray addObject:_jobDic];
答案 1 :(得分:1)
如果您按照从最新到最旧的顺序对阵列进行排序,那么疯狂的解决方案将很有效。否则,您需要在每个字典中保存日期键/值对,然后遍历该数组以查找最旧的项目。代码可能看起来像这样
NSDictionary *oldest;
for (NSDictionary *aJobDict in _recentJobArray)
{
NSDate *dateOfThisDict = aJobDict[@"date"]; //Assumes each dict has a key @"date"
if (!oldest || [oldest[@"date"] compare: dateOfThisDict] == NSOrderedDesending)
oldest = aJobDict;
}
[_recentJobArray removeObject: oldest];
[_recentJobArray addObject: newDict];