从首选项加载:未调用completionHandler

3
我正在尝试使用VPN iOS 8,为此我创建了一个新项目> iOS>单个应用程序。然后,要激活VPN连接,我进入了“功能”并打开了“个人VPN”。这些简单的步骤已经为我生成了Xcode:
现在,为了测试VPN是否处于活动状态,我在我的viewDidLoad方法中使用了以下代码:
#import <NetworkExtension/NetworkExtension.h>

- (void)viewDidLoad {
    [super viewDidLoad];

    NEVPNManager *manager = [NEVPNManager sharedManager];

    [manager loadFromPreferencesWithCompletionHandler:^(NSError *error) {
        if(!error) {
            NSLog(@"Load error: %@", error);
        } else {
            // No errors! The rest of your codes goes here...
            NSLog(@"VPN seems to be fine.");
        }
    }];

}

这段代码存在的问题是,似乎控制台没有收到任何消息。问题在于方法"loadFromPreferencesWithCompletionHandler"未被调用,这是为什么呢?

我认为你应该将这段代码实现在AppDelegate文件的application: didFinishLaunchingWithOptions:下,而不是在viewDidLoad中。 - x4h1d
1个回答

0
我遇到了同样的问题。我不知道为什么,但似乎 loadFromPreferences 只有在 AppDelegate 通过 'applicationDidBecomeActive' 方法后才调用完成处理程序。如果您在应用程序生命周期的那个时刻之前执行工作,则等待完成处理程序将导致无限等待...
因此,只需等待“AppDelegate.applicationDidBecomeActive”即可执行“loadFromPreferencesWithCompletionHandler”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接