2010-04-22 32 views
0

在下面的代码中,我将“1.3f”传递给printFloat,但在接收到“f”后,它的值是错误的(在本例中为-2.000000)。并且有一个警告“AppDelegate可能不会响应-printFloat:”如何在Objective-C中通过值传递浮点数?

我在哪里弄错了?

- (void)applicationDidFinishLaunching:(UIApplication *)application{ 
    // Override point for customization after application launch 
    [window makeKeyAndVisible]; 
    [self printFloat:1.3f]; 
} 

- (void)printFloat:(float)f { 
    NSLog(@"%f",f); 
} 
+0

是'printFloat:'接口中声明?否则,我想,这是由于浮动/双重促销。 – Dirk 2010-04-22 08:47:00

回答

2

您可以轻松地添加方法原型到头文件同时解决你的问题(<sameName>.h):

- (void)printFloat:(float)f; 
+0

谢谢! 我的广告,很抱歉提出低的问题。 – 2010-04-22 09:16:47

+0

你能标记答案已解决吗?谢谢 :) – Cesar 2010-04-23 04:03:03

0

如果包含在类头文件的正确定义,你仍然不能按引用传递花车,确保你没有覆盖父类的现有方法...

例如,我有这个问题,因为我的课是从NSMutableData衍生(我没有那么知道),和我一样dld的方法,

- (void) initWithLength:(float)length; 

我的班。 NSMutableData已经定义了这个方法,并且它使用了一个整数。

我的方法,然后产生垃圾:浮动值为,为0x0通过不管我把它...