0

可能重复:
如何将 NSNumber 转换为 NSString

Segue 将字符串从 MainViewController 传递到 DetailViewController:

主视图控制器.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;

细节视图控制器.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 回答