【问题标题】:NSData null CheckNSData 空检查
【发布时间】:2011-12-30 04:07:10
【问题描述】:

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

如果数据不为空,我必须显示它。否则我在 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

我不知道我哪里错了。应用程序在模拟器上运行顺利,但在设备上崩溃。我做错了什么?

【问题讨论】:

  • 当调试器崩溃时,您在调试器中看到的错误是什么?
  • 应用程序“拨号应用程序”异常退出,信号 11:分段错误。应用程序在设备上而不是在模拟器上崩溃...
  • 告诉我们谁在提供图像,我的想法是图像正在被释放,并且以某种方式使用了 nil 引用。
  • 我正在从我的数据库表中获取图像。感谢您的关注!!!

标签: iphone objective-c sdk uiimage nsdata


【解决方案1】:

试试这个

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

}

除此之外,在我的情况下没有任何效果。

【讨论】:

    【解决方案2】:

    当您使用== 运算符时,您是在比较指针值。这仅在您要比较的对象是完全相同的对象、相同的内存地址时才有效。
    也可以使用isEqualToData:方法。如果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....
    

    【讨论】:

    • 感谢您的建议,我会在目标 C 中的每个比较时记住这一点。:)
    【解决方案3】:

    你有它倒退,你需要:

    if (dataImage != nil)
    

    【讨论】:

    • 没有逆转条件的影响。应用程序在同一条件下崩溃。
    • @George :收到此消息:“NSData”类型的值永远不能为零,不允许比较。
    猜你喜欢
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多