我刚刚安装了最新的Xcode测试版来试用Swift 2以及Apple Watch开发部分的改进.
我实际上很难搞清楚为什么这种NSUserDefaults在iOS和Watch OS2之间共享信息的基本方法无法正常工作.
我按照这个循序渐进的教程来检查我是否错过了这个过程中的某些内容,比如打开手机应用程序和扩展程序的同一组,但这就是我得到的:没有.
这是我在iPhone应用程序中为ViewController编写的内容:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var lb_testo: UITextField!
let shared_defaults:NSUserDefaults = NSUserDefaults(suiteName: "group.saracanducci.test")!
var name_data:NSString? = ""
override func viewDidLoad() {
super.viewDidLoad()
name_data = shared_defaults.stringForKey("shared")
lb_testo.text = name_data as? String
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
@IBAction func upgrade_name(sender: AnyObject) {
name_data = lb_testo.text
shared_defaults.setObject(name_data, forKey: "shared")
lb_testo.resignFirstResponder()
shared_defaults.synchronize()
}
}
Run Code Online (Sandbox Code Playgroud)
这就是我在WatchKit的InterfaceController中所拥有的:
import WatchKit
import …Run Code Online (Sandbox Code Playgroud) 我看了WWDC2015,看到你现在可以在手表上开发本机应用程序了.这开辟了很多功能,我想知道如何在我的iOS应用程序和AppleWatch应用程序之间发送数据.
我看到有一个名为WatchConnectivity的新框架.如何使用此功能以及在来回发送数据时有哪些选择?
在我的应用程序中,我必须从手表InterfaceController发送信息到手机HomeViewController.但是,当我运行我的代码时,信息只能运行一次.为了让它再次工作,我必须删除Apple Watch应用程序并重新安装它.
InterfaceController.m:
#import "InterfaceController.h"
#import <WatchConnectivity/WatchConnectivity.h>
@interface InterfaceController() <WCSessionDelegate>
@property (strong, nonatomic) WCSession *session;
@end
@implementation InterfaceController
-(instancetype)init {
self = [super init];
if (self) {
if ([WCSession isSupported]) {
self.session = [WCSession defaultSession];
self.session.delegate = self;
[self.session activateSession];
}
}
return self;
}
-(void)sendText:(NSString *)text {
NSDictionary *applicationDict = @{@"text":text};
[self.session updateApplicationContext:applicationDict error:nil];
}
- (IBAction)ButtonPressed {
[self sendText:@"Hello World"];
}
Run Code Online (Sandbox Code Playgroud)
HomeViewController.m:
#import "HomeViewController.h"
#import <WatchConnectivity/WatchConnectivity.h>
@interface HomeViewController ()<WCSessionDelegate>
@end
@implementation HomeViewController
@synthesize TextLabel;
- (void)viewDidLoad {
[super …Run Code Online (Sandbox Code Playgroud) ios ×2
objective-c ×2
watchos-2 ×2
apple-watch ×1
swift ×1
watchkit ×1
watchos ×1
wcsession ×1