Valeur null dans un dictionnaire
olof
Membre
Salut à tous,
j'ai une variable qui contient un NSDictionary. Si j'affiche sont contenu (mode debug, 'Print Description to Console', j'obtient ça :
Printing description of cellValues:
<CFDictionary 0x14e21d90 [0xa038d1a0]>{type = immutable, count = 5, capacity = 6, pairs = (
0 : <CFString 0x60a0 [0xa038d1a0]>{contents = "titre"} = <CFString 0x191ae0 [0xa038d1a0]>{contents = "Flickr"}
3 : <CFString 0x6070 [0xa038d1a0]>{contents = "dateEcheance"} = <CFNull 0xa038d020 [0xa038d1a0]>
4 : <CFString 0x6060 [0xa038d1a0]>{contents = "dateTermine"} = <CFNull 0xa038d020 [0xa038d1a0]>
6 : <CFString 0x6080 [0xa038d1a0]>{contents = "isTermine"} = <CFNumber 0x1113d0 [0xa038d1a0]>{value = +1, type = kCFNumberSInt32Type}
7 : <CFString 0x6090 [0xa038d1a0]>{contents = "priorite"} = <CFNumber 0x1203d0 [0xa038d1a0]>{value = +9, type = kCFNumberSInt32Type}
)}
Après, je lis le contenu de la clé 'dateTermine'. Dans le debugger, la valeur affichée est <null>. Comment faire pour tester ce null ?
J'ai fait :
Ca fonctionne, mais j'ai le warning suivant à la compilation :
warning: comparison of distinct pointer types lacks a cast
Comment faire mon test sans avoir ce warning ?
Merci !
j'ai une variable qui contient un NSDictionary. Si j'affiche sont contenu (mode debug, 'Print Description to Console', j'obtient ça :
Printing description of cellValues:
<CFDictionary 0x14e21d90 [0xa038d1a0]>{type = immutable, count = 5, capacity = 6, pairs = (
0 : <CFString 0x60a0 [0xa038d1a0]>{contents = "titre"} = <CFString 0x191ae0 [0xa038d1a0]>{contents = "Flickr"}
3 : <CFString 0x6070 [0xa038d1a0]>{contents = "dateEcheance"} = <CFNull 0xa038d020 [0xa038d1a0]>
4 : <CFString 0x6060 [0xa038d1a0]>{contents = "dateTermine"} = <CFNull 0xa038d020 [0xa038d1a0]>
6 : <CFString 0x6080 [0xa038d1a0]>{contents = "isTermine"} = <CFNumber 0x1113d0 [0xa038d1a0]>{value = +1, type = kCFNumberSInt32Type}
7 : <CFString 0x6090 [0xa038d1a0]>{contents = "priorite"} = <CFNumber 0x1203d0 [0xa038d1a0]>{value = +9, type = kCFNumberSInt32Type}
)}
Après, je lis le contenu de la clé 'dateTermine'. Dans le debugger, la valeur affichée est <null>. Comment faire pour tester ce null ?
J'ai fait :
if (dateTermine != kCFNull) {<br />
Ca fonctionne, mais j'ai le warning suivant à la compilation :
warning: comparison of distinct pointer types lacks a cast
Comment faire mon test sans avoir ce warning ?
Merci !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Donc le test que tu as à faire c'est dateTermine == [NSNull null]
Ca me donne toujours le même warning...
Je ne sais pas si ça a une quelconque importance, mais j'affecte la valeur à dateTermine de la manière suivante :
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool=[[NSAutoreleasePool alloc] init];
NSDictionary * dictionary=[NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInteger:10],@first, [NSNull null],@second,nil];
if([dictionary objectForKey:@second] ==[NSNull null]) NSLog(@Ok);
NSLog(@%@",dictionary);
[pool drain];
return 0;
}
se fait sans Warning.
Et avec [cellValues objectForKey:@dateTermine] ?
Merci !