0

重複の可能性:
NSNumber を NSString に変換する方法

MainViewController から DetailViewController に文字列を渡すセグエ:

MainViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {


    if ([[segue identifier] isEqualToString:@"DetailSegue"]) {

        NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow];
        DetailViewController *detailViewController = [segue destinationViewController];

//Name:
detailViewController.detailName = [[sortedObjects objectAtIndex:selectedRowIndex.row] valueForKey:@"Name"];

//Attempt with number:
detailViewController.detailPopularity = [[sortedObjects objectAtIndex:selectedRowIndex.row] valueForKey:@"Popularity"];
    }
}

DetailViewController.h

//Name:
@property (nonatomic, strong) IBOutlet UILabel *nameLabel;
@property (nonatomic, strong) NSString *detailName;

//Attempt with number:
@property (nonatomic, strong) IBOutlet UILabel *popularityLabel;
@property (nonatomic, strong) NSString *detailPopularity;

DetailViewController.m

- (void)viewDidLoad
{
    [super viewDidLoad];

//Name:    
nameLabel.text = detailName;

//Attempt with number:
popularityLabel.text = detailPopularity;
}

この例では、UILabel に NSNumber を表示できないため、アプリがクラッシュします。NSNumber を NSString に変換してラベルに表示できるようにする方法の例を見る必要があります。さまざまな方法で試しましたが、エラーを修正するための適切な組み合わせが見つかりません..

4

3 に答える 3

2

他のクラスなしで使用できる既存の回答に加えて

Label.text = [theNumber stringValue];
于 2012-07-11T15:19:53.243 に答える
1

を使用しNSStringWithFormatます。

popularityLabel.text = [NSString stringWithFormat:"%@", theNumber];

特定の形式が必要な場合は、次を使用できます。

popularityLabel.text = [NSString stringWithFormat:"%.2f", [theNumber doubleValue]];
于 2012-07-11T15:09:01.603 に答える
0

私はあなたの NSNumber 部分を見ませんでしたが、これはうまくいくはずです:

Label.text = [NSString stringWithFormat:@"%f",[YourNSNumber doubleValue]];

doubleValue は intValue など、必要なものに変更できます。また、浮動小数点を文字列に変換するときに必要な文字列の形式を確認するには、少し調査する必要があります。

お役に立てれば

于 2012-07-11T15:11:08.323 に答える