NSData null Check - PullRequest
       17

NSData null Check

3 голосов
/ 16 ноября 2011

Я присваиваю изображение объекту nsdata из моего Coredata и после его назначения я проверяю, есть ли у 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

Я не знаю, где я ошибаюсь.Приложение работает нормально на симуляторе, но вылетает на устройстве.Что я делаю не так?

Ответы [ 3 ]

18 голосов
/ 16 ноября 2011

Когда вы используете оператор ==, вы сравниваете значения указателя. Это будет работать только тогда, когда сравниваемые объекты являются одним и тем же объектом с тем же адресом памяти.
Вы также можете использовать isEqualToData: method.this этот метод возвращает YES, если содержимое Data равно содержимому получателя, иначе 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....
4 голосов
/ 16 ноября 2011

У вас это задом наперед, вам нужно:

if (dataImage != nil)
1 голос
/ 28 августа 2015

попробуйте это

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

}

В моем случае ничего не сработало, кроме этого.

...