swift2対応を行ったのでその時調査したことをまとめます。
暫定対処も諸々あります!
※近々ちゃんと修正します。ひとまずメモ程度に…
BITCODEで怒られる。
中間ファイルを生成する設定をBuildセッティングでNOにする。
linker command failed with exit code 1 (use -v to see invocation)
enumerateが死亡
グローバル関数のenumerate関数がSeaquenseTypeの中に実装されました。
そのため
let ikasumi = ["ika", "sumi"]
for sumi in ikasumi.enumerate() {
//なんかやる
}
find()も死亡
グローバル関数のfind()はArrayクラスの内部にindexOf()として実装されました。
RealmSwift周りのお話
RealmがSwift2のAPI変更に合わせて修正
Realmのインスタンス生成時に例外を吐くようになりました。
(権限がないとか、ローカルパスが間違ってるとか)
do {
let realm = try Realm()
} catch let error {
print("\(error)")
}
例外握り潰す場合は、、、
let realm = try! Realm()
対処はこんな感じになりました
class RealmService {
func newInstance() -> Realm() {
do {
let realm = try Realm()
} catch let error {
//なんかやる
}
}
}
OptionSetTypeによる変更
いままでダラダラ||||||||||||||||||||||||||||||||||||で書いていたものが書きやすく見やすくなりました。
例えば
let samepleCalendar = calendar.components([.Year, .Month, .Day], fromDate: startDate)
UIButtonの指定イニシャライザの変更
convenience init(type buttonType: UIButtonType)
let button = UIButton(type: .System)
メソッドのいくつかがプロパティへと…
例:いままでだと
self.setTranslatesAutoresizingMaskIntoConstraints(false)
これからはッッッッッ!
self.translatesAutoresizingMaskIntoConstraints = false