0

我有以下自定义对象:


@interface LoadDescription : NSObject
@property (nonatomic) float start, stop, startMagnitude, stopMagnitude;
@end

我在我的一个控制器中将该对象作为属性:


@property (nonatomic, strong) LoadDescription *editingLoad;

但是当我尝试在editingLoad属性中设置/获取属性时......


float tableValue = [textField.text floatValue]; 
NSLog(@"value in table is %f", tableValue);
self.editingLoad.startMagnitude = tableValue;
NSLog(@"Load magnitude is %i", (int)self.editingLoad.startMagnitude);

...并运行 iOS,控制台输出显示虽然 tableValue 是我输入的任何内容,但 self.editingLoad.startMagnitude 始终为 0.00000000,这让我认为 setter/getter 有问题。

如果相关的话,我正在运行 ARC。

任何帮助表示赞赏,在此先感谢!

4

3 回答 3

0

是否在属性分配之前分配和初始化了 editingLoad 对象?

如果不是,那可能是您的问题,否则如果您将类型转换为浮点数,则小于 1,我相信它将始终为零。我不知道您对“tableValue”的期望值是什么

当第二个日志打印出 float/double "%f" 时会发生什么?

于 2012-07-17T23:37:47.477 回答
0

在这里,您有以下问题之一:1)您没有在自定义类中定义 init 方法。2)您在“editingLoad”对象中获得 nil 值。

于 2012-07-18T05:28:02.830 回答
0

确保你使用@synthesize editingLoad;了所有的 getter 和 setter 来为你生成。并且不要忘记在分配值之前分配/初始化您的自定义对象:

self.editingLoad = [[LoadDescription alloc] init];
self.editingLoad.startMagnitude = tableValue;
...
于 2012-07-18T05:18:17.660 回答