2009-10-05 7 views
0

En premier lieu, merci à tous ceux qui ont répondu à mes deux premières questions. J'ai essayé ce qui a été suggéré et toujours rien ne fonctionne. J'ai pensé que je créerais un autre poste avec le code que j'utilise. Juste pour un peu d'arrière-plan: Je crée un jeu de devinettes pour mon fils et j'ai besoin de changer les caractères de caractère en décimal en caractère. J'ai ajouté le code et les journaux. J'espère que c'est plus utile.La conversion de caractères n'est toujours pas terminée (Objective-C)

-(IBAction)CHANGE:(id)sender 
NSString *working_text; 
NSInteger working_text_length; 
NSInteger new_key_char_num; 
NSInteger key_char_num; 
NSInteger key_char_position = 0; 
NSInteger char_num = 0; 
NSString *altered_text; 

working_text = UITextView_1.text; 
working_text_length = working_text.length; 
altered_text = @""; 
UITextView_1.text = @""; 

int k = 0; 
while (k < working_text_length) 
{ 
char_num = [working_text characterAtIndex:k];   
key_char_num  = 65; 
new_key_char_num = char_num + key_char_num; 
    UITextView_1.text = [UITextView_1.text 
    stringByAppendingFormat:@"%c",new_key_char_num]; 



    NSLog(@"char_num................%c",char_num); 
    NSLog(@"char_num................%d",char_num); 
    NSLog(@"key_char_num........... %d",key_char_num); 
    NSLog(@"new_key_char_num........%d",new_key_char_num); 
    NSLog(@"new_key_char_num........%c",new_key_char_num); 
    NSLog(@" "); 

    char_num = 0; 
    k++; 
} 


NSLog(@"UITextView_1.text full text...%@",UITextView_1.text); 
NSLog(@"first %c",[UITextView_1.text characterAtIndex:0]); 
NSLog(@"second %c",[UITextView_1.text characterAtIndex:1]); 
NSLog(@"third %c",[UITextView_1.text characterAtIndex:2]); 


// release code is not shown 


} 

JOURNAUX

2009-10-04 22:43:04.949 DaVinci SMS[20757:20b] char_num................A 
2009-10-04 22:43:04.951 DaVinci SMS[20757:20b] char_num................65 
2009-10-04 22:43:04.951 DaVinci SMS[20757:20b] key_char_num........... 65 
2009-10-04 22:43:04.952 DaVinci SMS[20757:20b] new_key_char_num........130 
2009-10-04 22:43:04.953 DaVinci SMS[20757:20b] new_key_char_num........Ç 
2009-10-04 22:43:04.953 DaVinci SMS[20757:20b] 
2009-10-04 22:43:04.954 DaVinci SMS[20757:20b] char_num................B 
2009-10-04 22:43:04.955 DaVinci SMS[20757:20b] char_num................66 
2009-10-04 22:43:04.956 DaVinci SMS[20757:20b] key_char_num........... 65 
2009-10-04 22:43:04.956 DaVinci SMS[20757:20b] new_key_char_num........131 
2009-10-04 22:43:04.957 DaVinci SMS[20757:20b] new_key_char_num........É 
2009-10-04 22:43:04.957 DaVinci SMS[20757:20b] 
2009-10-04 22:43:04.958 DaVinci SMS[20757:20b] char_num................C 
2009-10-04 22:43:04.959 DaVinci SMS[20757:20b] char_num................67 
2009-10-04 22:43:04.959 DaVinci SMS[20757:20b] key_char_num........... 65 
2009-10-04 22:43:04.960 DaVinci SMS[20757:20b] new_key_char_num........132 
2009-10-04 22:43:04.960 DaVinci SMS[20757:20b] new_key_char_num........Ñ 
2009-10-04 22:43:04.961 DaVinci SMS[20757:20b] 
2009-10-04 22:43:04.961 DaVinci SMS[20757:20b] UITextView_1.text...ÇÉÑ 
2009-10-04 22:43:04.962 DaVinci SMS[20757:20b] first « 
2009-10-04 22:43:04.962 DaVinci SMS[20757:20b] second … 
2009-10-04 22:43:04.963 DaVinci SMS[20757:20b] third — 

je suis entré dans les caractères ABC »dans le UITextView. J'utilise juste trois caractères pour le moment. Si vous notez au bas du journal le journal, la chaîne UITextView_1.text complète n'est pas égale aux caractères individuels que je tire en utilisant la méthode characterAtIndex. Ça me rend fou.

+0

Certaines choses supplémentaires: Il faut utiliser le 'unichar' typedef et le spécificateur de format '% C' pour les caractères saisis à partir d'un NSString. – Wevah

Répondre

1

Si vous voulez aller de char en entier et le dos, pas besoin d'ajouter quoi que ce soit - vous pouvez simplement traiter le unichar comme un entier:

NSString *s = @"ABC"; 
unichar c = [s characterAtIndex: 0]; 
NSLog(@"char code: %i, char: %c", c, c); // output: char code: 65, char: A 
+0

Je vais essayer. Merci! –

+0

L'ajout de 65 à char_num n'est pas requis. – nall