objective-c - 如何通过键删除NSMutableArray对象?

标签 objective-c ios xcode

我已经构造了NSMutableArray,这是一个示例

(
{
帐户= A;
类型=电力;
},
{
帐户= B;
类型=水;
},
{
帐户= C;
类型=移动;
})

当我尝试使用删除帐户B时

[数据removeObject:@“B”];

没发生什么事

[[NSUserDefaults standardUserDefaults] synchronize];
NSArray *archivedArray = [NSKeyedUnarchiver unarchiveObjectWithFile:[self dataFilePath]];
if (archivedArray == nil) {
    data = [[NSMutableArray alloc] init];           
} else {
    data = [[NSMutableArray alloc] initWithArray:archivedArray];
}

最佳答案

如果您实际上使用的是数组而不是字典,则需要先搜索该项目,然后才能将其删除:

NSUInteger index = [data indexOfObjectPassingTest:^BOOL (id obj, NSUInteger idx, BOOL *stop) {
    return [[(NSDictionary *)obj objectForKey:@"Account"] isEqualToString:@"B"];
}];

if (index != NSNotFound) {
    [data removeObjectAtIndex:index];
}

关于objective-c - 如何通过键删除NSMutableArray对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7212320/

相关文章:

objective-c - 为核心数据写入创建后台线程

ios - iOS 中的 NSString 到 NSData

ios - 在 Facebook iOS SDK v4.0 中对应用程序启动时的事件 session 进行可靠检查

ios - 使用预处理器宏,如何更改开发、暂存和生产环境的文件名?

iphone - 如何在 UISearchBar 中设置范围

ios - 如何在我的 monotuch 应用程序中启用 PIE/ASLR?

ios - 如何仅在 Debug模式下启用3D触摸(静态快速操作)?

ios - viewDidAppear 之外的 PerformSegueWithIdentifier 不起作用

ios - Xcode iOS UIView with tap gesture allowing input on subviews

ios - 我的 Xcode 项目中没有任何内容是可编辑的?