在 NSMutableArray 中查找 NSMutableDictionary 的索引
Finding index of NSMutableDictionary inside an NSMutableArray
我有一个带有特定 key
和 value
的 NSMutableDictionary。这个字典在 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];
我的问题是我想获得找到的字典的正确索引。
如果你的数组只包含一个特殊的 NSMutableDictionary
然后使用下面的代码。我没有测试它,但我的想法是在数组中搜索 NSMutableDictionary
class。您必须在 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
希望这就是您要找的。
答案曾经是一个带有计数器的 for 循环,但你很幸运:NSArray 有一个新方法,indexOfObject:,它应该可以很好地解决这个问题:
NSUInteger i = [myArray indexOfObject:@{myKey:myValue}];
Swift: index(of:)
我有一个带有特定 key
和 value
的 NSMutableDictionary。这个字典在 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];
我的问题是我想获得找到的字典的正确索引。
如果你的数组只包含一个特殊的 NSMutableDictionary
然后使用下面的代码。我没有测试它,但我的想法是在数组中搜索 NSMutableDictionary
class。您必须在 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
希望这就是您要找的。
答案曾经是一个带有计数器的 for 循环,但你很幸运:NSArray 有一个新方法,indexOfObject:,它应该可以很好地解决这个问题:
NSUInteger i = [myArray indexOfObject:@{myKey:myValue}];
Swift: index(of:)