如何将CGFloat
存储/检索为子类UIImageView
的属性?我可以设置它的值,但是当我检索它时,它就是腐败的。 NSString
属性正常。
·H
@property CGFloat myFloat;
的.m
[sender setMyFloat:someFloat];
[sender myFloat]; //<- corrupt?
的 的 ** * ** * ** * 的更新 * ** * ** * ****
我想感谢你们所有的建议,他们都是正确的。我的问题比我想象的要复杂得多。发件人是附加到UIImageview的UIPanGestureRecognizer我遇到了问题。 UIPanGestureRecognizer调用选择器move:(id)sender,这就是我的问题所在。
在移动中:我可以成功执行:
[[sender view] setMyString:@"test"];
并使用
将其检索回来[[sender view] myString];
但是,如果没有包含(id)self,我根本无法设置或检索任何浮动属性。例如:
[[sender view] setMyString:@"test"]; //->works
[[sender view] setMyFloat:1.0f]; //->does not work
但这有效:
[[[sender view]self] setMyFloat:1.0f]; //->works
这是一个奇怪的部分,让我相信我的浮动有一个铸造问题!我有几个NSString属性,它们返回很好,但CGFloats不会。有人可以向我解释为什么不知何故我用字符串取得了成功但浮动在这里迷失了吗?
答案 0 :(得分:3)
答案#2:NSLog语法?
设置后如何验证值?如果您使用的是NSLog,请确保您拥有正确的浮动格式代码(例如NSLog(@"new float value = %f", myFloat)
。
原始回答:错误的二传手(有问题的拼写错误)
您正在调用错误的setter方法。正确的二传手是:
`[sender setMyFloat:someFloat]`
编辑:OP已更新他的问题以删除拼写错误
答案 1 :(得分:2)
试试这个:
.h:
@interface SomeClass : UIImageView {
CGFloat _someFloat;
}
@property (nonatomic) CGFloat someFloat;
@end
.m:
@implementation SomeClass
@synthesize someFloat = _someFloat;
...
...
...
@end
答案 2 :(得分:1)
你应该在你的.m中写@synthesize myFloat
来为ivar创建getter / setter