2009-12-03 6 views
2

J'essaye de convertir un unsigned char* en int * en Objective-C sur l'iPhone. Y a-t-il une API qui peut aider à la conversion?Convertir unsigned char * en int * en Objective-C

Voilà ma meilleure tentative:

-(BOOL)MyFunc:Version:(int *)nVer 
{ 
    unsigned char * uszVerSize; 
    //trying to assign string to int 
    nVer = uszVerSize[0] ; 
} 
+1

Bon code dans la première case: P –

Répondre

10

Cher Seigneur, je pense que vous avez des problèmes plus graves que celui indiqué ci-dessus.

Vous devez convertir les caractères en entier et les retourner. Vous devriez également en apprendre davantage sur les pointeurs et comment ints et chars diffèrent en mémoire. Vous ne pouvez pas simplement affecter un pointeur à un caractère à un pointeur sur un int.

+0

Je viens de réaliser que votre valeur de retour était un BOOL, ce que je suppose était un succès/échec. Cela pourrait être un bon exercice pour vous de savoir comment vérifier le résultat de NSNumber et retourner la valeur comme prévu à l'origine. – edoloughlin

+0

bonjour Merci pour votre réponse rapide. Par erreur, j'ai écrit un mauvais code qui est "nVer = uszVerSize [0];" au lieu de cela * nVer = uszVerSize [0];. Merci KamalBhr – KamalBhr

+0

Euh, ce n'est toujours pas un moyen fiable de convertir un caractère en nombre. – edoloughlin

-1
const char *asciiCString = [@"abc-zABC-Z" cString]; 
    int cStringLen = [@"abc-zABC-Z" length]; 
    for(i=0;i<cStringLen;i++) { 
    [asciiMArray addObject: [[NSNumber alloc] initWithInteger: asciiCString[i]]]; 
    printf("%d\n",asciiCString[i]); 
    } 

    for(i=0;i<cStringLen;i++) { 
    NSLog(@"%@",[asciiMArray objectAtIndex: i]); 
    printf("%d\n",asciiCString[i]); 
    } 

Ce code je l'ai écrit hier, pour tester un code de mon visage d'apprentissage

Il peut sembler naïf ... mais si elle vous aide ....

asciiCString [i ] renvoie la valeur ASCII du char référencé à l'index. asciiMArray est un objet NSMutableArray