返回值真的很蠢

时间:2010-02-17 22:52:08

标签: objective-c return-value

我正在做一些非常愚蠢的事情,我没有看到它。

我有一个带有方法的对象文档:

-(float) currentOrient
{
    return 50.5;
}

在另一个对象中,我打电话给:

-(void) showPage
{

    float rot2=0;
    rot2 = [doc currentOrient] ;
    NSLog(@"SP rotation is %.2f", rot2);
}

然而,输出是:

SP rotation is 1112145920.000000

不,有一个问题是“为什么%2f格式不正确?”但更令人困惑的问题是“这个数字来自哪里?”是的,我已经使用调试器完成了它,腐烂的值从它开始的垃圾变化。这个数字似乎是一致的。

显然,一些非常愚蠢的事情正在发生......

2 个答案:

答案 0 :(得分:1)

我可以回答第一个问题:

  

为什么%2f格式不正确?

因为它应该%1.2f舍入到小数点后两位(我相信这是你想要实现的目标?)

猜猜第二个:

你在代码中有一个名为rot的属性吗?除此之外...... 耸肩 ......我不知道 - 我假设你已经简化了在SO上发布的示例,你有没有拿出其他可能相关的代码?根据您提供的信息,应该的一切都很难找。

旁注:当我点击这样的bug时,我会做一些物理上的事情。通常当我回来时我的脑袋很清楚,我立即发现了问题。您可能也想尝试一下! :D

答案 1 :(得分:1)

听起来showPage方法不知道currentOrient的正确返回类型,因此它将返回的值解释为int并将该无意义的int转换为float。你收到任何警告吗?您确定要正确导入currentOrient的标头吗? currentOrient方法是否正确声明了?