我有两类View Controllers ....
查看1
@interface BillDataEntryViewController : UIViewController {
double x;
double y;
//这是一个大文件,但只显示哪个是必要的..
}
//我还没有声明任何属性,也没有合成它?
查看2
在另一个视图中,我正在创建一个名为objView1
的view1对象但我无法访问 objView1.double ?为什么..
答案 0 :(得分:3)
您需要为每个ivar添加属性并合成它们。
然后,您可以致电:objView1.x
或objView1.y
@property (nonatomic, assign) double y;
答案 1 :(得分:3)
保留不能用于原始类型。但你可以合成它们。
答案 2 :(得分:3)
您应该阅读objective-c's properties。特别是在.h文件中指定它们时可以提供的修饰符。但是,根据经验:
对于想要保留对retain
的引用的对象 - 这会在你给它的每个对象上调用retain(它也会为你调用前一个对象的释放!)
@property (nonatomic, retain) UIView *view;
对于原始数据类型,使用assign
- 这只会将您的变量设置为您给出的值:
@property (nonatomic, assign) float myFloat;
对于具有可变子类的内容,请使用copy
:
@property (nonatomic, copy) NSString *myString;
选项(3)适用于NSString,NSData,NSURL,NSSet,NDictionary等等 - 基本上 任何具有Mutable版本的东西(即NSString都有一个NSMutableString)。
readonly
如果您不希望任何人能够更改您的数据 - 这适用于指针和基本类型。
@property (nonatomic, readonly) double myDouble;
@property (nonatomic, readonly) UIView *myView;
答案 3 :(得分:-1)
在我看来,在两个视图之间传递值是一个坏主意。您应该使用ViewController。
此外,您应该通过创建getter(通过编写方法或声明ans合成属性)使vars可以访问其他对象。