我有两个类:
- RootViewController.h
- RootViewController.m
在我的 RootViewController.h 中
// in .h file
UITextField* myTextField_;
@property (nonatomic, retain) UITextField* myTextField.
在我的 RootViewController.m 中
// in .m file
@synthesize myTextField = myTextField_
// in dealloc
[myTextField_ release]
// in viewDidLoad
UITextField* tf = [[UITextField alloc] init] initWithFrame:CGRectMake(200,6,100,30)];
[nameTextField_ = tf];
[tf release]
我的问题是, 这会造成任何内存泄漏吗?还是会崩溃?有没有更好的方法来创建 UITextField 的实例以便我保留对它的引用?也许
myTextField_ = [[UITextField alloc] init] initWithFrame:CGRectMake(200,6,100,30)];
这就足够了吗?
最佳答案
最简单的方法是这样做:
.h:
UITextField *myTextField;
@property (nonatomic, retain) UITextField *myTextField;
.m
@synthesize myTextField;
- (void)viewDidLoad {
myTextField = [[UITextField alloc] initWithFrame:CGRectMake(200,6,100,30)];
}
- (void)dealloc {
[myTextField release];
}
您将拥有一个以最干净的方式分配和释放的实例,并且您将一直引用该文本字段。
关于iphone - 关于以编程方式创建 UITextField 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330787/