2015-08-17 48 views
0

我正在使用Xcode 7b5。一目瞭然顯示null objc

我已經閱讀了所有可以在瀏覽中找到的內容。但我仍然無法讓這個簡單的事情發揮作用。

我一瞥始終顯示在手錶模擬器

我使用Objective-C的語言awakeWithContext內空的錯誤。 我已經導入WatchKit和WatchConnectivity

這裏是我的iPhone上的ViewController代碼:

// glance used on the watch 
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.testing.test"]; 
//set a value of SystemState for the key 
[defaults setObject:SystemState forKey:@"SharingStatus"]; 
// synchronise 
[defaults synchronize]; 

的 「SystemState」 只是一些文字。在GlanceController.m我有這樣的:

//use group user defaults 
NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.testing.test"]; 

//get the object 
NSString *statusData = [defaults objectForKey:@"SharingStatus"]; 
NSLog(@"Error = %@", statusData); 

我已經建立了一個應用程序組的主要目標iPhone,以及使用同一組手錶擴展目標。

我的開發者帳戶顯示App Group確實存在。

在代碼中的手機端,我可以找到磁盤上的應用程序組首選項使用本:

[[[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.testing.test"] relativePath]); 

所以我知道「SystemState」值保存到共享文件夾

但不管是什麼原因Glance總是返回null。現在我迷了路。有任何想法嗎?

回答

0

NSUserDefaults在您的iOS應用程序和watchOS 2上的WatchKit擴展之間不起作用,因爲這些進程在單獨的設備上運行。您將不得不使用WatchConnectivity框架API來傳輸內容和更改。

要了解爲什麼這是必要的,以及如何做到這一點,我建議先看一些WatchKit的一般WWDC視頻,然後轉到WatchConnectivity之一。

相關問題