Koichi Adachi

smart phone app development tips

Swift

Swift convert Dictionary<Int,AnyObject> to Dictionary<HogeType,AnyObject>

@objc public enum HogeType:Int{ case unknown case hoge1 case hoge2 case hoge3 case hoge4 case hoge5 } class A{ } bucket brigade let convertedDict = [1:A(), 2:A(), 100:A()].reduce([HogeType:A]()){ guard let controlType = HogeType(rawValue: …

pass a enum key Dictionary to Swift from ObjC

expect receive enum-key dict (Dictionary<EnumType,T>) from Objective-C. but can't receive direct EnumType key because XCode abandon generate method. ObjC's NSDictionary not allow Int for key. to use instead of NSNumber. definition in swift @objc publi</enumtype,t>…

自作ライブラリをシームレスにObjCからSwiftへ移行する話(iOS Advent Calendar 2016/12/15)

これまでObjCで書いていたライブラリを'少しずつ'Swiftに移行する話です。 # このトピックで実現すること - 既存ライブラリ(ObjC)のプロジェクトはそのまま残す。 - Swiftで書きたい(移行したい)ロジックから新規ライブラリプロジェクトに記述(移動)する…

Swiftでclass名取得

Swiftでクラス名を取得するとき、namespaceまでついてきちゃうので、困った。 ※NSStringFromClass(MyViewController)だと「ProjectName.MyViewController」になる。 ので、こんな方法で取得してみた。 NSStringFromClass(MyViewController).componentsSepara…

Swift Tuple

Swiftで複数の値を持った戻り値を扱える。 class ExamTuple{ class func execute()->(){ var ret = self.exam() println(ret.value1 + ret.value2) println("\(ret.value1 + ret.value2)") println(self.exam().0 + self.exam().1 ) } class func exam()->(v…

Swiftで三項演算子

: Stringは省略可能 まだ目が慣れない〜 import Foundation class ExamTernaryConditionalOperator{ class func execute() -> (){ self.innnerMethod(__FILE__) } class func innnerMethod(string :String?){ let str:String = string! var ret = str.hasPre…

Swiftのnil許容型を扱う

override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?){ if segue{ println(segue!.identifier) } if let s = segue{ println(s.identifier) } var s2 = segue! println(s2.identifier) let s3 = segue! println(s3.identifier) pr…