2010-02-03 3 views
4

J'ai besoin de stocker des valeurs entières comme contenu d'un tableau. Mais quand j'essaye de faire ainsi, il jette un avertissement, passant l'argument 1 de 'addObject' fait le pointeur d'entier sans moulage. Et évidemment, la valeur n'est pas stockée dans le tableau. Voici le code.Ajout de valeurs entières comme contenu d'un tableau, iphone

NSUInteger i; 
for (i=0;i<5;i++){ 
[array addObject:i];} 

Répondre

10

NSArray -s ne peuvent pas stocker des objets non id. Vous devez la boîte dans un NSNumber:

NSUInteger i; 
for (i=0;i<5;i++) { 
    [array addObject:[NSNumber numberWithUnsignedInteger:i]]; 
} 

ou utilisez un CFArray avec callbacks personnalisés (mais vous sacrifier la lisibilité de la performance), ou utilisez std::vector<NSUInteger> (mais vous devez utiliser Objective-C++).

+0

merci pour celui-ci, mais comment le récupérer? – Nithin

+1

@Nithin: Vous pouvez obtenir un 'NSUInteger' à partir d'un 'NSNumber' avec' -unsignedIntegerValue'. – kennytm

+0

pls donner un exemple pour cela. – Nithin