如何将NSNumber转换为NSString

所以我有一个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"]; 

主题文本的作品。 但是我怎样才能得到NSNumber呢? (我实际上需要他们作为string…)我会转换NSString这样的NSNumber出来: NSString *blah = [NSNumber intValue] 。 但是我不知道如何在上面的代码中设置它…

尝试:

 NSString *myString = [NSNumber stringValue]; 

你可以这样做:

 NSNumber *myNumber = @15; NSString *myNumberInString = [myNumber stringValue]; 
 //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]; 

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

在Swift中,你可以这样做

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

有趣的是,如果NSNumber成为string的一部分,它会自动转换为string。 我不认为这是logging。 试试这些:

 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]; 

在Swift 3.0中

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

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