你必须明白“财产”的含义
使用“点”只是一种更快的方式来调用“特殊方法”,这些方法是为“设置”和“获取”变量属性而创建的。
例如,您可以拥有自己的使用子视图的类/UIView:
在 myView.h 中
@interface myView : UIView {
UIWebView *webView;
}
如果你这样做,你就没有“财产”,而只是一个对象......
因此,在您的 myView.m 中,您尝试像这样使用“点”:
NSLog(@"%i", self.webView.frame.size.width);
然后你得到一个错误,你不能这样做,xCode 说:
错误:访问未知的“webView”getter 方法
这只是意味着“webView”方法不存在......
'因为当你调用“self.webView”时,你只需调用一个名为“webView”的方法......
此方法只是将指针返回到您的值。
当你打电话时:
self.webView=someValue;
您只是在调用“setWebView”方法,该方法只是将您的对象设置为 someValue...
但是……这两种不可见的方法从何而来?
如果您告诉它使用 webView 作为属性,它们是由 xCode 本身创建的...
在我们的示例中,添加一些行:
在 myView.h 中
@interface myView : UIView {
UIWebView *webView;
}
@property (nonatomic, retain) UIWebView *webView;
在 myView.m 中
@implementation myView
@synthesize webView;
// ...
执行此操作 xCode 将为您添加 2 个方法“webView”和“setWebView”,
现在你可以打电话了:
NSLog(@"%i", self.webView.frame.size.width);
没有错误...
你可以放置值(正确的格式,在这种情况下是指向现有 UIWebView 的指针)
只是打电话:
self.webView = aUIWebView;
记得释放它,因为你在 :
中使用了“保留”
@property (nonatomic, retain) UIWebView *webView;
释放它:
[webView release];