recevoir l'élément de collection de type int n'est pas un objet c objectif dans iOS
J'ai le dictionnaire suivant:
NSDictionary* jsonDict = @{
@"firstName": txtFirstName.text,
@"lastName": txtLastName.text,
@"email": txtEmailAddress.text,
@"password": txtPassword.text,
@"imageUrl": imageUrl,
@"facebookId": [fbId integerValue],
};
Dans le dernier élément, j'ai besoin d'utiliser un nombre entier, mais je reçois l'erreur:
collection element of type int is not an objective c object
Comment puis-je utiliser un int valeur de cet élément?
source d'informationauteur Atma
Vous devez vous connecter pour publier un commentaire.
devrait être:
NSDictionary
travaille avec les objets et comme un résultat, nous ne pouvons pas stocker simplementint
s ouinteger
s oubool
s ou n'importe quelle autre primitive les types de données.[fbId integerValue]
renvoie une primitive valeur entière (qui n'est pas un objet)Donc nous avons besoin d'encapsuler primitive types de données et en faire des objets. c'est pourquoi nous avons besoin d'utiliser une classe comme
NSNumber
faire un objet de simplement stocker cette merde.plus de lecture: http://rypress.com/tutorials/objective-c/data-types/nsnumber.html
OU, en supposant fbID est un
NSString
,son comme l'autoboxing en Java. @ convertit toute primitive nombre de NSNumber objet.
en supposant fbID est un
int
alors Il devrait ressembler à:NSDictionary ne peut tenir des objets (par exemple NSString, NSNumber, NSArray, etc.), pas de valeurs primitives (par exemple, int, float, double, etc.). Il en va de même pour presque tous encapsulation en Objective-C. Pour stocker des nombres, utilisez NSNumber:
Vous devez utiliser @(%valeur%) pour les non pointeur de la valeur de type de données de magasin dans le Dictionnaire.
J'ai fini à l'aide d'un
NSNumber
: