我正在尝试将 UIView 传递给另一个类 - 这有点工作,但我无法保留指针......
在我的 .h 文件中,我声明了视图:
UIView *someView;
我添加属性
@property (nonatomic, retain) UIView *someView;
在 .m 文件中,我综合了属性
@synthesize someView;
然后我有一种设置视图的方法(也在 .h 文件中设置 - 相信我 :):
-(void)makeViewPointer:(UIView *)myView{
someView = [[UIView alloc] init];
someView = myView;
for(UIView *aView in someView.subviews){
NSLog(@"tag %d", aView.tag);
}
}
到目前为止,一切正常。当我记录 someView 时,我得到一个指针并且所有子视图都可以访问。
我从另一个类调用这个方法——这似乎工作正常。
现在 - 我设置了一个 IBAction 以在单击按钮后对该视图执行某些操作
-(IBAction)doSomething:(id)sender{
NSLog(@"show the view %@", someView);
for(UIView *aView in someView.subviews){ // doesn't output anything
NSLog(@"tag %d", aView.tag);
}
}
此时,someView-var 再次为空 - 为什么????
我假设,当我使用@property(非原子,保留)时,变量会自动保留吗?
我还尝试在初始化时保留变量:
someView = [[UIView alloc] retain];
不工作
或者
someView = [[UIView alloc] init];
[someView retain];
也不行……
我到底做错了什么???
谢谢你的帮助!