在iphone上将nil值指定为double

时间:2011-04-12 14:18:25

标签: iphone objective-c

我有这个方法=>

-(id)initWithLocationName:(NSString *)locatNm latitude:(double)lati longitude:(double)longi xCoord:(double)xco yCoord:(double)yco;

在这种方法中,我需要将nil值赋给xCoord& YCOORD。如何将nil指定为double?

6 个答案:

答案 0 :(得分:12)

nil用于Objective-C对象,double是原始数据类型(即,它不是Objective-C对象),因此您无法将nil分配给一个double变量。

如果0.0不能代表缺少值,则可以使用NANisnan。例如:

#include <math.h>

double x = 0.0;
double y = NAN;

if (isnan(x)) NSLog(@"x is not a number"); // this won't be logged
if (isnan(y)) NSLog(@"y is not a number"); // this will be logged

答案 1 :(得分:4)

Nil只是0.将它们设置为0会将它们设置为nil做同样的事情。

答案 2 :(得分:3)

你的双倍值不能为零。它不是一个引用类型,它是一个原始的。你到底想要完成什么?

除了:

如果您没有尝试在此方法中使用它,则可以使用[NSNumber numberWithFloat:0.4f]并且作为任何指针,NSNumber *number = nil;完全有效。但是在这种情况下它不起作用,因为该方法需要double

答案 3 :(得分:2)

您只能将nil指定给指针类型。但是,您可以将0.0分配给double

答案 4 :(得分:2)

您可以使用NSNumber

答案 5 :(得分:0)

您只能为指针指定nil。我会使用一个特殊值,通常是-1,而不是使用nil。如果你真的需要使用nil,你需要将双重包装在NSNumber中。