2011-11-16 5 views
3

nsdataオブジェクトに私のCoredataから画像を割り当てており、割り当て後にNSDataに画像があるかどうかをチェックしています。NSData null

データがnullでない場合は、表示する必要があります。そうでなければNSLogに「画像が見つかりません」と記録しています。

オブジェクトに画像がない場合にのみ、アプリケーションがクラッシュします。

私が試した:

NSData * dataImage; 
    if (dataImage == nil) 
    { 


     NSLog(@"Image is Assigned .... "); 

    } 
    else 
    { 

     NSLog(@"Image is Not Assigned ITS NIL.... "); 
    } 

を、私のデバイスコンソールは、次のようになります。

Wed Nov 16 12:31:09 unknown ReportCrash[783] <Notice>: Formulating crash  report for process Dial Up App[782] 
Wed Nov 16 12:31:09 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.hiteshi.Dial-Up-App[0x1b63]) Job appears to have crashed: Segmentation fault 
Wed Nov 16 12:31:09 unknown SpringBoard[24] <Warning>: Application 'Dial Up App' exited abnormally with signal 11: Segmentation fault 
Wed Nov 16 12:31:10 unknown ReportCrash[783] <Error>: Saved crashreport to /var/mobile/Library/Logs/CrashReporter/Dial Up App_2011-11-16-123107_Priya-Chaturvedis-iPhone.plist using uid: 0 gid: 0, synthetic_euid: 501 egid: 0 

私が間違って取得していますどこ私は知りません。アプリケーションはシミュレータ上でスムーズに動作していますが、デバイス上でクラッシュします。私は間違って何をしていますか?あなたは後方にそれを持っている

+0

デバッガがクラッシュしたときに表示されるエラーは何ですか? – NSResponder

+0

「Dial Up App」アプリケーションが信号11で異常終了しました:セグメンテーションフォルト。アプリがクラッシュすると、シミュレータではなくデバイスにクラッシュする... – NSException

+0

画像を取得した場所から – Harish

答えて

17

。これは、比較しているオブジェクトがまったく同じオブジェクトで、同じメモリアドレスにある場合にのみ機能します。
isEqualToData:メソッドを使用することもできます。このメソッドは、Dataの内容が受信者の内容と等しい場合はYESを返し、そうでない場合はNOを返します。同じ数のバイトを保持する場合、2つのデータオブジェクトは等しいです。オブジェクト内の同じ位置は同じです。

NSData * dataImage = [[NSData alloc]init]; 
    if (dataImage == nil) 
    { 
     NSLog(@"Image is Assigned .... "); 

    }else 
    { 
     NSLog(@"Image is Not Assigned ITS NIL.... "); 
    } 
// Output:Image is Not Assigned ITS NIL.... 
+0

おかげさまで、ご指摘いただいた点を覚えておきます。 – NSException

4

は、あなたが必要とする:あなたが==演算子を使用する場合、あなたはポインタ値を比較している

if (dataImage != nil) 
+0

いいえ条件を逆転させる効果。アプリケーションは、同じポイントの状態でクラッシュしています。 – NSException

+0

@George:このメッセージを受け取る: 'NSData'型の値は決してゼロにすることはできません。比較はできません。 –

0

この他にも私の場合で働いていた何もこの

if ((dataImage != NULL) && ![v isKindOfClass:[NSNull class]]) 
{ 

} 

を試していません。