私は画像の配列を表示する必要があるiWatchアプリケーションを作成しています。私はWCSession
を使ってiPhoneから画像を転送しています。ここで私が試したコードは次のとおりです。私のiPhoneアプリで[__NSCFArray length]:インスタンスに送信された認識できないセレクタ
InterfaceController.m
- (void)willActivate {
[super willActivate];
if ([WCSession isSupported]) {
WCSession *session = [WCSession defaultSession];
session.delegate = self;
[session activateSession];
NSLog(@"WCSession is supported");
}
- (void)session:(WCSession *)session didReceiveApplicationContext:(NSDictionary<NSString *,id> *)applicationContext {
NSLog(@"%@", applicationContext);
NSData *imageData = applicationContext[@"image"];
UIImage *contactImage = [UIImage imageWithData:imageData];
_graphImage = [contactImage valueForKey:@"image"];
}
、私はバイト単位で画像を格納する配列を持っています。 iWatchアプリを実行した後、私はiPhoneアプリからNSData
の価値を得ています。しかし、アプリケーションはUIImage *contactImage = [UIImage imageWithData:imageData];
で終わり、
[__NSCFArrayの長さ]:インスタンスに送信された認識できないセレクタ。
私はこのエラーをGoogle検索しましたが、私の場合は解決策を見つけることができませんでした。
ご協力いただきますようお願い申し上げます。
あなたの 'imageData'は実際にはNSArrayです – dan
あなたが新しいのであれば、Swiftを学んでみませんか?型チェックはコードをより安全にし、 'as? 'はそのようなエラーからのクラッシュを避けるでしょう。 –
@danはい、実際には、applicationContextにはiphoneアプリからの応答が含まれています。したがって、imageDataは実際にはNSArray –