CallKit 调用数组中的块集值不起作用



我正在开发一个应用程序,我希望在其中有一个功能来阻止呼叫。如果我将静态值传递给addBlockingEntryWithNextSequentialPhoneNumber它会阻塞数字,但当我将数组传入addBlockingEntryWithNextSequentialPhoneNumber时,它不会阻塞数字。我已经在Appdelegate中记录了我的数组,它看起来不错。

应用代码:

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]);
}

输出为:电话号码 == 918849494978电话号码 == 919142142124

处理程序类代码:

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 类进行交互。

最新更新