How to implement the "didset of swift" in objective-c?

codingiran picture codingiran · Sep 24, 2015 · Viewed 12.7k times · Source

Swift (from the book 《iOS Animations by Tutorials:Chapter 12》 released by http://www.raywenderlich.com/):

let photoLayer = CALayer()

@IBInspectable
  var image: UIImage! {
    didSet {
      photoLayer.contents = image.CGImage
    }
}

How can I implement the above syntax in objective-c? I know only to set the property of photoLayer and image like below:

@property (strong, nonatomic) CALayer *photoLayer;
@property (strong, nonatomic) IBInspectable UIImage *image;

But i do not know how to implement didset{...} parts using objective-c syntax, please help!

Answer

Daij-Djan picture Daij-Djan · Sep 24, 2015

override the setter and implement the setter yourself.

- (void)setImage:(UIImage *)image {
    if (_image != image) {
        _image = image;
        photoLayer.contents = image.CGImage;
    }
}