简体   繁体   English

如何在NSMutableArray中存储最多5个对象?

[英]How do I store a maximum amount of 5 objects in a NSMutableArray?

I am creating an array of NSdictionarys and putting that array in NSUserDefaults. 我正在创建一个NSdictionary数组,并将该数组放入NSUserDefaults中。 I then put the array data in a recently added tableview. 然后,将数组数据放入最近添加的tableview中。 I am trying to get it so it would store the 5 most recent objects added to that array. 我正在尝试获取它,以便它将存储添加到该数组的5个最新对象。 How can I go about this? 我该怎么办? Below is my code: 下面是我的代码:

- (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];    

} }

Assuming you are referring to the _recentJobArray , you could do this: 假设您引用的是_recentJobArray ,则可以执行以下操作:

if (_recentJobArray.count == 5) {
    [_recentJonArray removeObjectAtIndex:0]; // remove oldest
}
[_recentJobArray addObject:_jobDic];

If you keep your array sorted in newest-to-oldest order then maddy's solution will work well. 如果您按最新到最旧的顺序对阵列​​进行排序,那么maddy的解决方案将很好地工作。 Otherwise you'll need to save a date key/value pair in each dictionary, and then loop through the array looking for the oldest item. 否则,您需要在每个字典中保存一个日期键/值对,然后在数组中循环查找最旧的项。 The code might look something like this 该代码可能看起来像这样

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];

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM