自定义对象无法正常工作的Setter / Getter

时间:2012-07-17 23:24:04

标签: iphone objective-c ios ipad properties

我有以下自定义对象:


@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,如果那是相关的。

感谢任何帮助,提前谢谢!

3 个答案:

答案 0 :(得分:0)

在属性赋值之前,editLoad对象是否已分配并初始化?

如果不是那可能是你的问题,否则如果你是浮点数类型转换为小于1我相信它将永远为零。我不知道你对“tableValue”

的期望是什么

当第二个日志打印出浮动/双倍“%f”时会发生什么?

答案 1 :(得分:0)

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

self.editingLoad = [[LoadDescription alloc] init];
self.editingLoad.startMagnitude = tableValue;
...

答案 2 :(得分:0)

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