接下來就沒有了
其實 property 包含了你所不知道的東西
property 其實是會自動產生 Setter 與 Getter 的兩個 Method
但是這兩個 Method 的實作是可以被覆寫的
你可以做你想要的實作動作
像是你做了
@property (nonatomic, retain) UIImage *image;
之後你可以在 m 檔中覆寫 Setter 的實作
- (void)setImage:(UIImage *)image { UIImageView *imageView = [[UIImageView alloc] initWithImage:image]; [imageView setFrame:self.view.bounds]; [imageView setTag:1]; [self.view addSubview:imageView]; [imageView release]; }
當你覆寫 Setter 的時候你不需要使用
@synthesize image = _image;
因為你自己決定了 Setter 傳入參數的作用了
不過當覆寫 Setter 時,Getter 也需要被覆寫
所以就來做覆寫 Getter 的 Method
- (UIImage *)image { UIImageView *imageView = (UIImageView *)[self.view viewWithTag:1]; return imageView.image; }
這時候外部的 Class 也可以取得這個 image 的資訊了
另外 property 有 readonly 的參數
這時候就只要覆寫 Getter 就好了
當我知道原來 property 可以這樣子做之後我的程式的寫法就比較活了
因為可以用一行字取代兩個 Method 的宣告
而且同時能做到原來 property 的動作
可以說是
最後,下次的教學是如何使用 CGPath 來圍出一個觸碰的區域。