41

NS Prefix - そこから見渡す Swift 3 の景色 #startup_mobile

Embed Size (px)

Citation preview

// こちらは Foundation の Date 型

// こちらは自分の Date 型

// こちらは Foundation の Date 型

// こちらは自分の Date 型

// 衝突しなければ、名前空間は省略可能

let result: NSString = text.stringByReplacingOccurrencesOfString( pattern, withString: newText, options: NSStringCompareOptions .RegularExpressionSearch)

let result = text.replacingOccurrences(of: pattern, with: newText, options: .regularExpression)

• NSObject

• NSAutoreleasePool

• NSException

• NSUserNotification

• NSBackgroundActivityScheduler

• NSXPCConnection

• NSString, String

• NSData, Data

• NSArray, Array<Element>

// Objective-C はクラスで頑張るしかない class Value : NSObject { … } class MutableValue : Value { … }

// Swift は構造体にすると言語が積極サポート struct Value { … }

// 構造体だと Objective-C で使えない struct Value : NSObjectProtocol { … } struct MutableValue : NSObjectProtocol { … }

// Objective-C のクラスはそのまま残す class Value : NSObject { … } class MutableValue : Value { … }

// Swift に構造体を新設する struct Value { … }

// Data と NSData は相互ブリッジ可能 let data = Data() as NSData let data = NSData() as Data

// NSMutableData は Data から生成可能 let data = NSMutableData(data: Data())

// NSMutableData は NSData の mutableCopy で取得 let data = NSData().mutableCopy()

// NSMutableData を Data へはブリッジ可能 let data = NSMutableData() as Data

let data1 = Data()

// 他の変数に代入しても、必要時までは共有 var data2 = data1 as Data

// 書込時に初めて、内容を複製(data1 から独立) data = NSMutableData(data: otherData)

• IndexSet

• CharacterSet

• Data

• Date

• AffineTransform

• Notification

• NSAttributedString

• NSRegularExpression

• NSPredicate

• NSLock

• class NSCache<AnyObject, AnyObject>

• class NSMapTable<AnyObject, AnyObject>

• class NSHashTable<AnyObject>

• class NSOrderedSet