我在运行时将值添加到NSUserDefaults
并将密钥设置为[NSString stringWithFormat:@"decrement%@",course_id];
我一个接一个地设置对象,有什么办法可以使所有以“decrement”开头的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];