来自阵列的CallKit调用块设置值不工作
问题描述:
我正在使用一个应用程序,在该应用程序中我想要一个功能来阻止调用。如果我将静态值传递给addBlockingEntryWithNextSequentialPhoneNumber
它会阻塞数字,但是当我将数组传递给addBlockingEntryWithNextSequentialPhoneNumber
时,它不会阻塞数字。我在Appdelegate中记录了我的数组,它看起来很好。来自阵列的CallKit调用块设置值不工作
Appdegate代码:
NSArray *sortedArr = [lockedArr sortedArrayUsingSelector:@selector(compare:)];
[DEFAULTS setObject:sortedArr forKey:@"SortedBlockedUsers"];
NSArray<NSNumber *> *blockedPhoneNumbers = [DEFAULTS objectForKey:@"SortedBlockedUsers"];
for (NSNumber *phoneNumber in blockedPhoneNumbers) {
NSLog(@"phoneNumber == %lld", (CXCallDirectoryPhoneNumber)[phoneNumber unsignedLongLongValue]);
}
输出为:phoneNumber的= = 918849494978 phoneNumber的= = 919142142124
HandlerClass代码:
NSArray<NSNumber *> *blockedPhoneNumbers = [[NSUserDefaults standardUserDefaults] objectForKey:@"SortedBlockedUsers"];
//NSArray<NSNumber *> *blockedPhoneNumbers = @[ @918823514521, @919586112211 ];
for (NSNumber *phoneNumber in blockedPhoneNumbers)
{
[context addBlockingEntryWithNextSequentialPhoneNumber:(CXCallDirectoryPhoneNumber)[phoneNumber unsignedLongLongValue]];
}
答
最后调试我的扩展类之后,我发现这个问题是将值从NSUserDefaults
分配给数组。我们必须使用NSUserDefaults SuiteName
与Extension类交互来保存和检索价值。