2016-03-25 14 views
-1

私は画像の配列を表示する必要がある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検索しましたが、私の場合は解決策を見つけることができませんでした。

ご協力いただきますようお願い申し上げます。

+5

あなたの 'imageData'は実際にはNSArrayです – dan

+2

あなたが新しいのであれば、Swiftを学んでみませんか?型チェックはコードをより安全にし、 'as? 'はそのようなエラーからのクラッシュを避けるでしょう。 –

+0

@danはい、実際には、applicationContextにはiphoneアプリからの応答が含まれています。したがって、imageDataは実際にはNSArray –

答えて

-1

タイプミスがあるため、このエラーが表示されます。-_graphImage = [contactImage valueForKey:@ "image"];ここにあなたのイメージインスタンスのvalueForKeyを送信しています

+0

@ PetahChristianです...うん。正しい。間違った – Karaban

+0

私は_graphImageの値を設定することができます –

+0

私はそれを解決..私はこのUIImageを削除* contactImage = [UIImage imageWithData:imageData]; NSData値を直接_graphImageに設定してください。それは私のために働いています。あなたの助けを感謝します。@ Karaban –