ios - 有什么方法可以使用正则表达式或通配符从 NSUserDefaults 获取对象

标签 ios xcode

我在运行时向 NSUserDefaults 添加值,并将键设置为 [NSString stringWithFormat:@"decrement%@",course_id];

我正在一个一个地设置对象,有什么方法可以获取所有键以“递减”开头的 userdefaults 对象吗?

或者我必须进入一个循环并通过一个一个地制作精确的键来获取对象?

注意:- 我接受反对票作为一种健康的批评方式,但请写下原因以便我可以改进。

最佳答案

你可以像这样获取 NSUserDefaults 的所有字典键:

 NSArray *arrKeys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]

现在使用 NSPredicate 查找 [NSString stringWithFormat:@"decrement%@",course_id]; arrKeys 中的值

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(SELF like %@)",@"decrement"];
NSArray *keysLikeDecrement =
[arrKeys filteredArrayUsingPredicate:predicate];

NSPredicate *aPredicate =
[NSPredicate predicateWithFormat:@"SELF beginswith 'decrement'"];
NSArray *beginWithDecrement =
[arrKeys filteredArrayUsingPredicate:aPredicate];

NSPredicate *bPredicate =
[NSPredicate predicateWithFormat:@"SELF contains 'decrement'"];
NSArray *containsWithDecrement =[arrKeys filterUsingPredicate:bPredicate];

关于ios - 有什么方法可以使用正则表达式或通配符从 NSUserDefaults 获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12386798/

相关文章:

ios - Xcode 11.4找到无效的调试信息,调试信息将被剥离

ios - 为 iPhone 和 iPad 制作一个 .IPA

xcode - Xcode 中的输出构建选项

swift - 如何使用如果让可选照片?

ios - NSURLConnection 完成时出现错误 1200,现在是 1202?

ios - 压缩或压缩 iOS sqlite 数据库

ios - 在 iPhone X 上适配 Xcode 7 及更高版本的应用程序

ios - XCode: MasterDetailsView - 景观中没有分屏的 DetailsView?

ios - 通过 CocoaPods 集成 Fabric/Crashlytics

swift - 如果在 set double 中没有值返回到带有 guard let 语句的设定数字