0

次のカスタムオブジェクトがあります。


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

コントローラの1つにプロパティとしてオブジェクトがあります。


@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未満のfloatにintを型キャストする場合は、常にゼロになると思います。「tableValue」にどのような値を期待しているのかわかりません

2番目のログがfloat/double "%f"を出力するとどうなりますか?

于 2012-07-17T23:37:47.477 に答える
0

@synthesize editingLoad;すべてのゲッターとセッターが自動的に生成されるように、必ず使用してください。値を割り当てる前に、カスタムオブジェクトを割り当て/初期化することを忘れないでください。

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

ここでは、次のいずれかの問題が発生します。1)カスタムクラスでinitメソッドを定義していない。2)「editingLoad」オブジェクトでnil値を取得します。

于 2012-07-18T05:28:02.830 に答える