December 2018
Intermediate to advanced
414 pages
10h 19m
English
Objective-C provides a facility to work at compile time with nullability and optionals. While it's not as powerful as Swift optionals, it still provides a decent amount of safety for pure Objective-C programs. Lastly, it can be used to better interoperate with Swift.
Let's first consider this simple Objective-C interface:
@interface AnObject: NSObject@property (nonatomic, copy) NSString* string;@end
This is exposed in Swift as the following:
class AnObject: NSObject { var string: String!}
As you might notice, the string is a forced unpacked string, but this is unlikely what you would expect. Before Swift 4, the following code was valid but would crash at runtime:
// Swift 3let object = AnObject()
Read now
Unlock full access