Je veux la ressortingction sur la database quand dans la database aucune donnée dans la rangée que ne peut pas montrer l'exception que je veux simplement à la ressortingction sur la valeur nulle
if ([[Utility checkNullValues:tInfo.product_price]isEqualToSsortingng:@""]) { [Utility showAlertView:@"Sorry" message:@"No Product You Buy." viewcontroller:self]; }
Et c'est l'erreur:
2015-06-03 12: 35: 38.320 NiColi [28363: 2438247] * App terminaison due à une exception non interceptée 'NSInvalidArgumentException', raison: '* + [NSSsortingng ssortingngWithUTF8Ssortingng:]: NULL cSsortingng' *** Première stack d'appels:
NSSsortingng *str = ((char *)sqlite3_column_text(comstackdStatement, 1)) ? [NSSsortingng ssortingngWithUTF8Ssortingng:(char *)sqlite3_column_text(comstackdStatement, 1)] : nil;
Vous pouvez utiliser cette macro:
#define NULL_VALIDATION(obj) ({ __typeof__ (obj) __obj = (obj); __obj == [NSNull null] ? nil : obj; })
Cette macro renverra nil
si l'object passé est NULL
ou bien, l'object lui-même. Usage:
if ([NULL_VALIDATION(tInfo.product_price) length] == 0) { [Utility showAlertView:@"Sorry" message:@"No Product You Buy." viewcontroller:self]; }
PS: N'oubliez pas d'importer <objc/runtime.h>
Essaye ça-
+ (id)validateNullFields:(id)value{ if (value != NULL && ![value isKindOfClass:[NSNull class]]) { return value; } return nil; }
J'espère que cela peut vous aider …
-(BOOL)isNullSsortingng:(NSSsortingng *)dbSsortingng{ if ([dbSsortingng isKindOfClass:[NSNull class]]) { return YES; } else if (dbSsortingng == nil){ return YES; } else if ([dbSsortingng isEqualToSsortingng:@""]){ return YES; } else if ([dbSsortingng isEqualToSsortingng:@"null"]){ return YES; } else if ([dbSsortingng isEqualToSsortingng:@"(null)"]){ return YES; } else if ([dbSsortingng caseInsensitiveCompare:@"NULL"] == NSOrderedSame){ return YES; } else if (dbSsortingng == 0){ return YES; } else{ return NO; } return NO; }
Il renvoie YES pour vide et NO pour certaines valeurs.
Je vais donner une meilleure et meilleure solution pour vous question.Même si vous passez quelque chose à cela, il vous donne la bonne réponse.Alors vous pouvez simplement utiliser cette méthode.
#pragma mark - check ssortingng is empty or not - (void)checkEmpty:(NSSsortingng *)check { @try { if (check.length==0) check = @" "; if([check isEqual:[NSNull null]]) check = @" "; } @catch (NSException *exception) { check = @" "; } }
Appelez simplement cette méthode (avec ssortingng (parameter)) où vous voulez envoyer datatables à la database.