Slide 5
Slide 5 text
Реальность
!
@interface PromoModel: NSObject
@property (nonatomic, readonly, copy, nonnull) NSString * name;
@property (nonatomic, readonly, strong, nullable) NSURL * pictureUrl;
@property (nonatomic, readonly, assign) NSInteger amount;
- (nonnull instancetype)initWithName:(nonnull NSString *)name
pictureUrl:(nullable NSURL *)pictureUrl
amount:(NSInteger)amount;
@end
static NSString *const kPromoModelName = @"PromoModel.name";
static NSString *const kPromoModelPictureUrl = @"PromoModel.pictureUrl";
static NSString *const kPromoModelAmount = @"PromoModel.amount";
@implementation PromoModel
- (nonnull instancetype)initWithName:(nonnull NSString *)name
pictureUrl:(nullable NSURL *)pictureUrl
amount:(NSInteger)amount {
self = [super init];
if (self) {
_name = [name copy];
_pictureUrl = pictureUrl;
_amount = amount;
}
return self;
}
- (nullable instancetype)initWithCoder:(NSCoder *)decoder {
self = [super init];
if (self) {
_name = [decoder decodeObjectForKey:kPromoModelName];
_pictureUrl = [decoder decodeObjectForKey:kPromoModelPictureUrl];
_amount = [decoder decodeIntegerForKey:kPromoModelAmount];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:_name forKey:kPromoModelName];
[coder encodeObject:_pictureUrl forKey:kPromoModelPictureUrl];
[coder encodeInteger:_amount forKey:kPromoModelAmount];
}
@end
5