我只是想在将通行证添加到存折时收到通知。
需要注意的一件事是,我还尝试使用我使用与我的应用程序使用的不同的苹果开发帐户生成的通行证。我试图弄清楚这是否是问题的一部分。
这是 3-tab 应用程序中的一个 VC。
视图控制器.m:
@interface ViewController ()
{
PKPassLibrary *_passLibrary;
NSArray *_passes;
}
@end
“viewDidLoad”:
- (void)viewDidLoad
{
//init passbook
_passLibrary = [[PKPassLibrary alloc] init];
_passes = [_passLibrary passes];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(passLibraryDidChange:) name:PKPassLibraryDidChangeNotification object:_passLibrary];
}
和我的通知处理程序:
- (void)passLibraryDidChange:(NSNotification *)notification
{
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"%@", @"passes added");
});
}
当我在 iOS 模拟器中运行应用程序时,一切都按预期工作,我可以在 Xcode 中看到控制台的日志输出。
当我在设备上运行时,添加 Pass 时不会调用通知。在设备上,我什至无法列出任何通行证。
更奇怪的是,当我从存折中删除通行证,然后重新进入应用程序时,会调用通知。
ps:我真的希望这是我在这里想念的简单的东西。
编辑:更新了更多信息和更完整的代码示例