2011-03-14 2 views
1

je produis le code suivant et mis primeNum dans un champ texte:Essayer de mettre en question textfield

int primeNum = 1+(arc4random() & 59); 

[num_1Field setText : [NSString stringWithFormat : @"%2d", primeNum]]; 

Cette valeur entière apparaît comme il se doit. Mais si j'ajoute un de mes nombres aléatoires à un tableau, le trier et utiliser le tableau trié pour définir le même champ de texte, je n'obtiens pas mes valeurs entières attendues. Mon code est le suivant:

NSMutableArray *array = [NSMutableArray arrayWithCapacity : 5]; 

[array addObject: [NSNumber numberWithInteger : primeNum]]; 

[array addObject: [NSNumber numberWithInteger : randNum_2]]; 

... 

[array sortUsingSelector:@selector(compare:)]; 

[num_2Field setText : [NSString stringWithFormat : @"%2d", [array objectAtIndex : 0]]]; 

Parce que les deux primeNum et [array objectAtIndex:1] sont des valeurs entières, je pense que mon code fonctionnerait, mais évidemment il ne fonctionne pas. Je peux imprimer mon tableau trié en utilisant NSLog() et obtenir les résultats triés corrects ainsi je sais que les données sont dans le tableau. Je ne peux pas le définir correctement dans mes champs de texte. Toutes les suggestions seront grandement appréciées.

Répondre

2

[array objectAtIndex : 0] ne contient pas d'entier; il contient un NSNumber. NSNumber est un type d'objet; pour imprimer la valeur d'un type d'objet, vous voulez "% @", au lieu de "% 2d". Dans ce cas cependant, j'utiliser:

[num_2Field setText : [NSString stringWithFormat : @"%2d", [[array objectAtIndex : 0] intValue]]; 

La méthode intValue retourne l'entier que vous voulez.

+1

@Gendolkari Merci beaucoup pour votre aide. Cette ligne ne fonctionnait pas: [num_1Field setText: [NSString stringWithFormat: @ "% 2d", [tableau objetAtIndex: 0] intValue]]; Mais cette ligne a fonctionné parfaitement. [num_1Field setText: [NSString stringWithFormat: @ "% @", [array objectAtIndex: 0]]]; Merci encore pour votre aide. –

Questions connexes