LoginSignup
11
10

More than 5 years have passed since last update.

Swift2対応のために調査したこととか暫定で対処したこととかその他諸々をまとめるところ

Posted at

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
11
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10