NSData null检查

NSE*_*ion 3 iphone sdk objective-c uiimage nsdata

我正在将图像分配给我的nsdata对象,Coredata并在分配之后我正在检查是否NSData有图像.

如果数据不为null,我必须显示它.另外我在NSLog中录制"没有找到图像".

仅当对象中没有图像时,应用程序才会崩溃.

我试过了:

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


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

    }
    else 
    {

        NSLog(@"Image is Not Assigned ITS NIL.... " );
    }
Run Code Online (Sandbox Code Playgroud)

我的设备控制台如下所示:

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
Run Code Online (Sandbox Code Playgroud)

我不知道我哪里出错了.应用程序在模拟器上运行平稳但在设备上崩溃.我究竟做错了什么?

Par*_*fna 18

使用==运算符时,您正在比较指针值.这仅适用于您要比较的对象在同一内存地址上完全相同的对象.
你也可以使用isEqualToData:method.this方法如果Data的内容等于接收者的内容,则返回YES,否则NO.如果两个数据对象保持相同的字节数,则它们是相等的,如果相同位置的字节在对象是一样的.

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....
Run Code Online (Sandbox Code Playgroud)