2015年9月18日金曜日

iOS9とXcode7になって

9月17日、iOS9がリリースされたのでさっそくうちのiPad3にインストールした。
多少挙動が怪しいアプリもあるが、今のところ特に大きな問題は出ていない。
動作速度もiOS8.4に比べて遅くなったとは思えない。
目玉機能のSplit ViewやSlide Overといった機能は最近のiPad、iPhoneでしか使えないんだね。うちのでは使えなくて残念。

ま、そりゃいいのだが、自作アプリで動作がおかしい物を発見。

多言語の判断が変わった

多言語対応しているSkyReporterで、コード内で言語別にメッセージを変えている部分が誤動作して、英語のメッセージが出るようになってしまった。
これは言語環境を調べる関数でAPIが"ja"じゃなくて"ja-JP"とかを返すようになったためだという。
こんなとこいちいち変えるなよ! と思う。
iOS8以前にも対応するには文字列の先頭が"ja"かどうかで判断した方がいいようだ。
後でアップデートせねば。


Swiftの仕様が少し変わった模様

自作のSwiftプロジェクトをXcode7で開いたところ、「コードの書き方が変更になったからコンバートしちゃっていい?」ってメッセージが出た。
なんか、Swift 2.0にバージョンアップされたんだとか。
どこがどうコンバートされるのかは確認できる。
たとえばObjective-CのNSLogにあたるprintln()がprint()関数になった模様。

他にもコンバートできなかった箇所がエラーになったり。optionalの関係で、配列にしまうUIImageに!を付けてやったら通った。
optionalは今でもまだよくわかってないのに、また仕様が変わったら困るな。
そうでなくても手持ちの参考書と現在のSwiftの仕様が違ってきている。


ディレクトリが見つからないと出る

Xcodeで開いたら以下のWarningが出て、消えない。

Directory not found for option '-F/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/Developer/Library/Frameworks'

iPhoneシミュレータのiOS9.0のSDKのディレクトリが見つかんねーぞ、こら、ってことなんだろうけど、俺何もしてないぞ。
プロジェクトの中のBuild Settings、「アプリ名Tests」の中のSerch PathsのFramework Serch Pathsの中を消せばいいようだ。
左側のコラムにPROJECTとTARGETSがあって、TARGETSの中にさらにアプリ名とアプリ名Testsというのがあり、それぞれにSearch PathsのFramework Search Pathsという設定があるので間違えないように。
文字で書くより以下の画像を見たほうがわかりやすかろう。

0 件のコメント:

コメントを投稿