Вы должны понимать значение слова "собственность"
использование «точки» - это просто более быстрый способ вызова «специальных методов», созданных просто для «установки» и «получения» переменной-свойства.
Например, вы можете иметь свой собственный класс / UIView, который использует subView:
в myView.h
@interface myView : UIView {
UIWebView *webView;
}
если вы делаете именно это, у вас есть не «свойство», а просто объект ...
поэтому в вашем myView.m вы пытаетесь использовать «точку» следующим образом:
NSLog(@"%i", self.webView.frame.size.width);
тогда вы получаете ошибку, вы не можете этого сделать, xCode говорит:
ошибка: доступ к неизвестному методу получения 'webView'
это просто означает, что метод "webView" не существует ...
Когда вы вызываете "self.webView", вы просто вызываете метод с именем "webView" ...
этот метод просто возвращает указатель на ваше значение.
и когда вы звоните:
self.webView=someValue;
вы просто вызываете метод "setWebView", который просто устанавливает ваш объект с помощью someValue ...
но так ... откуда берутся эти 2 невидимых метода?
они создаются самим xCode, если вы скажете ему использовать webView как свойство ...
в нашем примере добавьте несколько строк:
в 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];