【发布时间】:2012-11-28 18:30:46
【问题描述】:
我很难理解为什么以下文本字段在某些教程中被声明了两次。
在.h文件中:
# include <UIKit/UIKit.h>
@interface MyViewController : UIViewController {
UITextField *name; // <----- What do I need this for? Is it the same as below?
}
@property (nonatomic, strong) IBOutlet UITextField *name; // <----- Same as this?
@end
一开始我以为这就像一个实例变量,但它们只是在 .m 文件中声明的,对吧?
.m 文件
#import "MyViewController.h"
@implementation UIViewController {
NSString *myString; // <----- This is an instance variable, right?
}
什么是“UITextField *name;”为了?我不只需要前面有@property 的第二个吗?谢谢。
【问题讨论】:
-
来自 Apple Doc(封装数据):您可以在没有属性的情况下定义实例变量 最佳做法是在需要跟踪值的任何时候对对象使用属性或其他物体。如果您确实需要在不声明属性的情况下定义自己的实例变量,可以将它们添加到类接口或实现顶部的大括号内。
标签: objective-c xcode controller declaration