「プロパティ」の意味を理解する必要があります。「ドット」の使用は、変数プロパティを「設定」および「取得」するためだけに作成された「特別なメソッド」を呼び出すためのより高速な方法です。
例として、サブビューを使用する独自のクラス/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を設定するメソッドです...
しかし、そう... これらの 2 つの目に見えないメソッドはどこから来たのでしょうか?
プロパティとして webView を使用するように指示すると、xCode 自体によって作成されます...この例では、いくつかの行を追加します。
myView.h で
@interface myView : UIView {
UIWebView *webView;
}
@property (nonatomic, retain) UIWebView *webView;
myView.m で
@implementation myView
@synthesize webView;
// ...
このxCodeを実行すると、「webView」と「setWebView」の2つのメソッドが追加され、次を呼び出すことができます:
NSLog(@"%i", self.webView.frame.size.width);
エラーなしで...
次のように呼び出すだけで、(正しい形式の、この場合は既存の UIWebView へのポインター) 値を入れることができます。
self.webView = aUIWebView;
で「保持」を使用したため、リリースすることを忘れないでください。
@property (nonatomic, retain) UIWebView *webView;
次のコマンドで解放します。
[webView release];