首页 文章

如何将NSNumber转换为NSString

提问于
浏览
126

所以我有 NSArray "myArray"与 NSNumber s和 NSString s . 我需要他们在另一个 UIView 所以我这样做:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

DetailViewController *details = [[DetailViewController alloc] initWithNibName:@"DetailView" bundle:nil];
details.subjectText = [[myArray objectAtIndex:indexPath.row] objectForKey:@"subject"];

subjectText工作 . 但是我怎样才能得到 NSNumber ? (我实际上需要它们作为字符串......)我会将 NSString 转换为 NSNumber ,如下所示: NSString *blah = [NSNumber intValue] . 但我不知道如何在上面的代码中设置它...

7 回答

  • 362

    尝试:

    NSString *myString = [NSNumber stringValue];
    
  • 7

    你可以这样做:

    NSNumber *myNumber = @15;
    NSString *myNumberInString = [myNumber stringValue];
    
  • 2
    //An example of implementation :
    // we set the score of one player to a value
    [Game getCurrent].scorePlayer1 = [NSNumber numberWithInteger:1];
    // We copy the value in a NSNumber
    NSNumber *aNumber = [Game getCurrent].scorePlayer1;
    // Conversion of the NSNumber aNumber to a String with stringValue
    NSString *StringScorePlayer1 = [aNumber stringValue];
    
  • 2

    或尝试 NSString *string = [NSString stringWithFormat:@"%d", [NSNumber intValue], nil];

  • 12

    有趣的是,如果NSNumber成为字符串的一部分,它会自动转换为字符串 . 我认为没有记录 . 试试这些:

    NSLog(@"My integer NSNumber:%@",[NSNumber numberWithInt:184]);
    NSLog(@"My float NSNumber:%@",[NSNumber numberWithFloat:12.23f]);
    NSLog(@"My bool(YES) NSNumber:%@",[NSNumber numberWithBool:YES]);
    NSLog(@"My bool(NO) NSNumber:%@",[NSNumber numberWithBool:NO]);
    
    NSString *myStringWithNumbers = [NSString stringWithFormat:@"Int:%@, Float:%@ Bool:%@",[NSNumber numberWithInt:132],[NSNumber numberWithFloat:-4.823f],[NSNumber numberWithBool:YES]];
    NSLog(@"%@",myStringWithNumbers);
    

    它将打印:

    My integer NSNumber:184
    My float NSNumber:12.23
    My bool(YES) NSNumber:1
    My bool(NO) NSNumber:0
    Int:132, Float:-4.823 Bool:1
    

    适用于Mac和iOS

    这个不起作用:

    NSString *myNSNumber2 = [NSNumber numberWithFloat:-34512.23f];
    
  • 5

    在Swift中你可以这样做

    let number : NSNumber = 95
    let str : String = number.stringValue
    
  • 2

    In Swift 3.0

    let number:NSNumber = 25
    let strValue = String(describing: number as NSNumber)
    print("As String => \(strValue)")
    

    我们可以在String中获取数字值 .

相关问题