我正在尝试从我的NSMutableArray中获取一个变量来准备segue,但它是一个双倍的我收到一个错误,说“不兼容的类型' double''
这是一个masterview应用程序。
这就是我正在使用的
NSString *lonString = [weatherArray [indexPath.row]objectForKey:@"lon"];
[[segue destinationViewController] setLon:lonString];
在我的详细视图controller.h中,我声明了变量@property NSString lonString
有什么想法吗?
答案 0 :(得分:0)
您将其声明为字符串,但是您忘记将*添加到您的媒体资源中,您还应该添加一个属性,例如:
@property (nonatomic, strong) NSString *lonString;
如果你在weatherArray中存储NSNumber *(你不能存储像double这样的原始值),请使用:
NSString *lonString = [[weatherArray [indexPath.row]objectForKey:@"lon"] stringValue];
答案 1 :(得分:0)
使用此
NSString *lonString = [NSString stringWithFormat:@"%@",[[weatherArray objectAtIndex:indexPath.row]objectForKey:@"lon"]];
YourViewcontroller *set = [segue destinationViewController];
[set setLon:lonString];
答案 2 :(得分:0)
看起来您需要将double
属性的lon
格式设置为一个很好的字符串。以下是如何做到这一点:
NSNumberFormatter *formatter = [NSNumberFormatter new];
formatter.maximumFractionDigits = 3;
formatter.numberStyle = NSNumberFormatterDecimalStyle;
NSString *lonString = [formatter stringFromNumber:[[weatherArray objectAtIndex:indexPath.row] objectForKey:@"lon"]];
答案 3 :(得分:0)
我想,你应该:
NSString *lonString = [weatherArray [indexPath.row]objectForKey:@"lon"];
[[segue destinationViewController] setLon:[lonString doubleValue]];
因为objectForKey:
方法返回id
(在您的情况下可能是NSNumber
个实例)而不是像double
这样的原始值。