我有一个NSMutableDictionary,其中包含特定的key
和value
。这个字典在NSMutableArray中。我想用一个特定的键更新字典,该键位于数组内的某个索引处。我想找到这个字典对象的索引。目前,我的字典位于索引0,而我的editingIndexPath
是1,属于NSIndexPath类型,因此editingIndexPath.row
对我没有帮助。
我的代码如下:
//UpdatedDateAndTime is the NSMutableArray.
//selectedDay is a NSString object.
//dateKeySelected is also a string key.
[[updatedDateAndTime objectAtIndex:editingIndexPath.row] setObject:selectedDay forKey:dateKeySelected];
我的问题是我想获得找到的字典的正确索引。
答案 0 :(得分:1)
答案曾经是一个带有计数器的for循环,但你很幸运:NSArray有一个新方法,indexOfObject:,应该可以正常使用这个技巧:
NSUInteger i = [myArray indexOfObject:@{myKey:myValue}];
斯威夫特:index(of:)
答案 1 :(得分:0)
如果您的数组只包含一个特殊NSMutableDictionary
,请使用下面的代码。我没有测试它,但想法是在数组中搜索NSMutableDictionary
类。而且你必须在indexPath
中进行搜索,这等于你想要分配一些数据的单元格。
@interface ViewController (){
NSMutableArray *array;
NSMutableDictionary *dictionary;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (indexPath.row == 1) {
for (int i = 0; i < array.count; i++) {
if ([updatedDateAndTime[i] objectForKey:@"open_house_updated_date"] == selectedDay) {
NSLog(@"%i th index contains NSMutableDictionary that you want",i);
//do whatever needed
break;
}
}
}
else{
//define other cells which doesn't contain NSMutableDictionary
}
return cell;
}
@end
我希望这就是你要找的东西。