
我希望我可以使用一些变量将NSObject作为对象发送到此NSDictionary中.几天后,我仍然没有找到解决这个问题的方法.反正有没有通过函数发送NSObject?
如果没有办法发送NSObject,是否可以发送类似结构的东西?
我的代码如下:
-(voID)updateWatchData{ //Objective-C if ([WCSession isSupported]) { WCSession *session = [WCSession defaultSession]; session.delegate = self; [session activateSession]; if(session.isPaired) { //Objective-C DLog("Sending watch data"); NSMutableArray *kalenderData = [[NSMutableArray alloc] init]; for (int i = 0; i < self.dataContainerVIEws.count; i++) { DataContainerVIEw *container = self.dataContainerVIEws[i]; if(container.ListType == ListGPKalender){ for(int j = 0; j < container.tableArray.count; j++){ GrandPrix *gp = container.tableArray[j]; WatchGrandPrix *watchGp = [[WatchGrandPrix alloc] init]; watchGp.gpnaam = gp.gpnaam; [kalenderData addobject:watchGp]; } } } NSArray *keys = [NSArray arrayWithObjects:@"kalenderData",nil]; NSArray *objects = [NSArray arrayWithObjects:kalenderData,nil]; NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; NSError *anyError; if([[WCSession defaultSession] updateApplicationContext:dictionary error:&anyError]){ DLog("Data Send!"); }else{ DLog("Failed to send data with error: %@",anyError); } } }} 而NSObject只是:
@interface WatchGrandPrix : NSObject@property(nonatomic,strong) Nsstring *gpnaam;@end
我得到的错误是
Failed to send data with error: Error Domain=WCErrorDomain Code=7010
“Payload contains unsupported type.”
UserInfo={NSLocalizedDescription=Payload contains unsupported type.,
NSLocalizedRecoverySuggestion=Only pass valID types.}
谢谢!
解决方法 您可以将对象转换为属性列表表示(基本上代替模型对象的数组,您有一个字典数组,其中每个字典是值的映射,其中键是变量的名称,值是pList表示值的兼容类型).另一个带宽效率较低的选项是使您的对象符合NSSecureCoding并使用类似NSKeyedArchiver的东西将其转换为NSData并发送NSData数组.
总结以上是内存溢出为你收集整理的ios – 通过watchConnectivity发送NSObject全部内容,希望文章能够帮你解决ios – 通过watchConnectivity发送NSObject所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)