我遇到了这段代码的问题:
NSRect itemFrame; id item; // code to assign item goes here. itemFrame.origin.y -= [item respondsToSelector:@selector(selectedHeight)] ? [item selectedHeight] : [self defaultSelectedHeight];
这是有问题的一点:
[item selectedHeight]
编译器假设返回类型是id.我虽然添加一个演员会解决这个问题:
(float)[item selectedHeight]
但它不起作用.
我究竟做错了什么?(我怀疑问题是解决与id相关的指针,但我找不到任何相关的文档).
你想要的[[item selectedHeight] floatValue]
,假设selectedHeight返回一个NSNumber
.
我知道下面的代码适用于iOS 6 SDK.我假设obj对象包含一个浮点值.
id obj; float fVal; fVal = [obj floatValue];