有没有办法使用正则表达式或通配符从 NSUserDefaults 获取对象

ama*_*mar 3 xcode ios

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

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

或者我必须循环并通过一一制作精确的密钥来获取对象?

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

Par*_*iya 5

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

 NSArray *arrKeys = [[[NSUserDefaults standardUserDefaults] dictionaryRepresentation] allKeys]
Run Code Online (Sandbox Code Playgroud)

现在使用 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];
Run Code Online (Sandbox Code Playgroud)