2010-08-26 7 views
0

Je dois passer un caractère à la ligne no. 2: Méthode d'abord, j'ai essayé,Comment passer un objet unichar?

1) unichar dicttxt = [[myword lowercaseString] characterAtIndex:0]; 

    2) fileName = [[NSBundle mainBundle] pathForResource:dicttxt ofType: @"txt"]; 

2ème méthode que j'ai essayé,

NSString *dicttxt = [[myword lowercaseString] characterAtIndex:0]; 

fileName = [[NSBundle mainBundle] pathForResource:dicttxt ofType: @"txt"]; 

deux méthode suggèrent erreur Make pointer from integer without a cast.

+0

Une raison particulière pour laquelle vous n'utilisez pas NSString? –

Répondre

6

Plutôt que d'utiliser un caractère, utilisez:

NSString *dicttxt = [[myword lowercaseString] substringWithRange:NSMakeRange(0, 1)]; 
fileName = [[NSBundle mainBundle] pathForResource:dicttxt ofType:@"txt"]; 

Alternativement (et j'oublie complètement cette méthode), ce qui suit est equiv alent au-dessus, mais plus concise:

NSString *dicttxt = [[myword lowercaseString] substringToIndex:1]; 
fileName = [[NSBundle mainBundle] pathForResource:dicttxt ofType:@"txt"];  

Ceux-ci fonctionnera aussi longtemps que:

  1. myword a une longueur d'au moins 1.
  2. myword
  3. ne commence pas par des caractères composites (i.e. “ café ” est bien, mais “ über ” pourrait ne pas être).
1

réponse de Dreamlax est correct, mais il ne traite pas la raison de votre problème: unichar est pas une classe, et il n'y a pas une telle chose comme un objet unichar. Si vous commande double-cliquez sur unichar dans Xcode, il vous montre la déclaration:

typedef unsigned short unichar; 

En d'autres termes, unichar est un alias du type entier primitif unsigned short.

Questions connexes