准备不与双重合作?

时间:2014-08-14 09:52:22

标签: ios objective-c segue

我正在尝试从我的NSMutableArray中获取一个变量来准备segue,但它是一个双倍的我收到一个错误,说“不兼容的类型' double''

这是一个masterview应用程序。

这就是我正在使用的

NSString *lonString = [weatherArray [indexPath.row]objectForKey:@"lon"];
    [[segue destinationViewController] setLon:lonString];

在我的详细视图controller.h中,我声明了变量@property NSString lonString

有什么想法吗?

4 个答案:

答案 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这样的原始值。