16. 옵셔널 / 열거형
Swift
옵셔널 기능은 열거형으로 구현되어 있다!
enum Optional<Wrapped> : ExpressibleByNilLiteral {
case none
case some(Wrapped)
public init(_ some: Wrapped)
}
21. Property Observer
Objective-C Swift
분산된 코드 한 눈에 파악 가능
@interface SomeViewController ()
@property (nonatomic) NSInteger count;
@end
@implementation SomeViewController
- (void)setCount:(NSInteger)count {
_count = count;
NSLog(@"count %ld", count);
}
@end
class ViewController: UIViewController
{
var count: Int {
didSet {
print("count (count)")
}
}
}
22. Computed Property
Objective-C Swift
분산된 코드 한 눈에 파악 가능
@interface SomeViewController ()
@property (nonatomic) NSInteger dollar;
@property (nonatomic) NSInteger won;
@end
@implementation SomeViewController
- (NSInteger)won {
return _dollar * 1000;
}
@end
class ViewController: UIViewController
{
var dollar: Int = 10
var won: Int {
return dollar * 1000
}
}
23. Closure
• Swift의 클로저는 일급객체
• 변수, 상수, 매개변수 등으로 전달할 수 있음
• 함수는 클로저의 일종
• map, filter, reduce 등의 고차함수