2009-11-25 5 views
0

J'ai un simple avertissement dans mon code de développement iphone.fait un pointeur d'entier sans un cast

NSUInteger *startIndex = 20; 

Ce travail de code, mais j'ai un avertissement:

avertissement: Argument 1 passant de 'setStartIndex:' un entier en pointeur sans un casting

Merci pour votre aide.

Répondre

4

L'avertissement dit à peu près tout: vous INITIALISATION startIndex, qui est un pointeur -NSUInteger, à 20, qui est un entier littéral. Vous devez allouer l'espace pour contenir l'entier lui-même quelque part.

Il peut être que ce que vous voulez est quelque chose comme ceci:

NSUInteger *startIndex = malloc(sizeof(NSUInteger)); 
*startIndex = 20; 

Ou peut-être

static NSUInteger startIndex = 20; 
NSUInteger *startIndexPtr = &startIndex; 

Mais étant donné le nom var, il semble que vous pouvez également Muddling la sémantique un peu, et probablement vraiment juste envie:

NSUInteger startIndex = 20; 
1

NSUInteger est un type scalaire (défini comme typedef unsigned int NSUInteger;). Corrigez votre code:

NSUInteger startIndex = 20; 

Vous pouvez l'utiliser directement après (ou avec & startIndex si vous devez passer un pointeur vers NSUInteger).

Questions connexes