Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

2,070 views

Published on

Swift 3 で NS Prefix が消去されたことについて、ざっくり広めに LT してきました。単純に消えるだけじゃない大きな変化、調べててなかなか面白かったです。

2016/10/01 第一回スタートアップiOS/Android勉強会 での発表資料です。

Published in: Engineering
  • Be the first to comment

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

  1. 1. 

  2. 2. // こちらは Foundation の Date 型 // こちらは自分の Date 型
  3. 3. // こちらは Foundation の Date 型 // こちらは自分の Date 型 // 衝突しなければ、名前空間は省略可能
  4. 4. let result: NSString = text.stringByReplacingOccurrencesOfString( pattern, withString: newText, options: NSStringCompareOptions .RegularExpressionSearch) let result = text.replacingOccurrences(of: pattern, with: newText, options: .regularExpression)
  5. 5. • NSObject • NSAutoreleasePool • NSException
  6. 6. • NSUserNotification • NSBackgroundActivityScheduler • NSXPCConnection
  7. 7. • NSString, String • NSData, Data • NSArray, Array<Element>
  8. 8. // Objective-C はクラスで頑張るしかない class Value : NSObject { … } class MutableValue : Value { … } // Swift は構造体にすると言語が積極サポート struct Value { … }
  9. 9. // 構造体だと Objective-C で使えない struct Value : NSObjectProtocol { … } struct MutableValue : NSObjectProtocol { … }
  10. 10. // Objective-C のクラスはそのまま残す class Value : NSObject { … } class MutableValue : Value { … } // Swift に構造体を新設する struct Value { … }
  11. 11. // 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
  12. 12. let data1 = Data() // 他の変数に代入しても、必要時までは共有 var data2 = data1 as Data // 書込時に初めて、内容を複製(data1 から独立) data = NSMutableData(data: otherData)
  13. 13. • IndexSet • CharacterSet • Data
  14. 14. • Date • AffineTransform • Notification
  15. 15. • NSAttributedString • NSRegularExpression • NSPredicate
  16. 16. • NSLock
  17. 17. • class NSCache<AnyObject, AnyObject> • class NSMapTable<AnyObject, AnyObject> • class NSHashTable<AnyObject> • class NSOrderedSet

×