2010-02-23 5 views
14

Toujours lorsque j'essaie de définir un entier comme objet dans un NSDictionary le programme se bloque sans un message (rien dans la console). Quel est le problème dans ce code? :App se bloque lorsque je crée un NSDictionary avec entier comme objet

NSString *string = @"foo"; 
int number = 1; 

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: 
         string, @"bla1", number, @"bla2",nil]; 

Répondre

39

Utilisation NSNumber au lieu des matières premières int:

moderne Objective-C:

NSString *string = @"foo"; 
NSNumber *number = @1; 

NSDictionary *params = @{@"bla1": string, @"bla2": number}; 

Ancien:

NSString *string = @"foo"; 
NSNumber *number = [NSNumber numberWithInt:1]; 

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: 
        string, @"bla1", number, @"bla2",nil]; 
+0

merci qui a fonctionné! – Flocked

+2

Vous pouvez uniquement stocker des objets Objective-C dans la plupart des classes de collection Cocoa, vous ne pouvez pas stocker les types primitifs. –

4

Dans un dictionnaire que vous devez stocker des objets, pas de types primaires comme int, char etc.

Questions connexes