iOS8,9の違いを幾つか その1

次があるかわかりませんが、その1。 UIView Class 再描画でよく使われるメソッド - (void)layoutIfNeeded; 深度が違うようです。iOS9だと再帰的に適応されるようですが、iOS8だと深度が1か2か。 再描画されないなーということがありました。 気づいた時はframeの変更をしようとした時でした。 NSLocale Class - (NSArray<NSString *>*)preferredLanguages 出力する。 NSLog(@"%@", [NSLocale preferredLanguages]); iOS8系 ( ja, en, "zh-Hans", de ) この設定をしているiPhone(4S iOS8.3)のSS iOS9系 iOS9.0 実機で確認したところiOS8系と同じでした。 iOS9.1 ( "ja-JP", "en-JP&

Pythonのエンコードを宣言する

Pythonでファイルのエンコードを宣言するとき # -*- coding: utf-8 -*- こういった内容を記載する人が多いと思いますが、自分にはこの記法には疑問がありました。 なぜEmacsを使わない人たちがEmacsのエンコードを宣言をするのだろうか。 会社ではEmacsを使うのは自分だけなので、もしかしたらこの記法がPythonのエンコード宣言だと思っているのかもしれません。 Vimではこう書く(らしい)です(Vimはほぼ使わないので知りません # vim:fileencoding=<encoding-name> Pythonのリファレンス 英文 If a comment in the first or second line of the Python script matches the regular expression coding[=:]\s*([-\w.]+), this comment is processed as an

Xcodeでメソッドにコメント書く

コメントは大事 例えばこんな感じで書くと色々と便利。メソッドだけじゃなくてプロパティとかただの変数でもいい。 /** @method increment: @param i NSInteger 数値 @return 引数iをインクリメントして返す 引数iをインクリメントして返すお仕事 */ - (NSInteger)increment:(NSInteger)i { return ++i; } 気をつけること 1. コメントは/*!ではなく/**で始めた方がいい。Swiftで/*!が無視された(今は違うかも? 2. 説明を書くときは空行を入れる、もしくは@discussionを使う この2つくらい。 使い方 コメントを書いたメソッドをクイックヘルプ(オプション+左クリック、もしくはコントロール+コマンド+ハテナ)するとこうなる(メソッドを呼び出す箇所でも同じ)。 しかしここまで書くのはめんどくさいし、そもそもクイックヘルプを表示するとかダルい。 どうせならメソッド打つときの補完と同じように大事な部分だけ表示できれば十分

iOS用にユニバーサルライブラリを作る

BlocksKitをフレームワーク化した iOS8対応のためBlocksKitをフレームワーク化したログ。 ソースコードのまま組み込むとかイヤなのでよく外部のライブラリはフレームワークにしているのでメモ。 手順 ダウンロードからビルドまで * github から最新ソースコードをダウンロード * ターゲットをBlocksKitにしてiOS Device用Releaseビルド * ターゲットをBlocksKitのままiPhone Simulator用Releaseビルド * OrganizerでBlocksKitのDerived Dataディレクトリ右の->をクリックしてFinderに表示 以下コマンドライン ターミナルのログからひっぱり出したコマンドなので間違ってる可能性は否定できない。 $ cd <Derived Data Dir> // FinderからD&Dでpathが貼り付けできるのでそれがらく) $ xcrun lipo -info ./Release-iphoneos/libBlocksKit.a Architectures in