Life, Education, Death

プログラミング以外でも思ったことをつらつらと書きたい

Objective-c

CFArrayはArrayと等価じゃなかった

XCode Version 7.1.1 (7B1005) Swift2.1で試しました。 CGWindowListCreateDescriptionFromArrayに[Int]を渡したところコンパイルが通ったのでCFArrayとArrayが等価だと思ってていたが使い方が間違っていたようなのでメモ let windowArray = [1310] let wind…

Promiseの実装練習2

Objective-c版を実装し始めた。 C言語だと可変長引数の扱いどうしようとかトラブってなかなか進んでいない。一旦thenとresolve関数だけ実装してみた。https://github.com/nilfs/promise-objcメンバメソッドを呼ぶためにオブジェクトと関数ポインタ(セレクタ…

CAS(Compare And Swap)をしたいんだけど

Lock-freeにしたいところがあってobjective-cでどうやって書くか調べてみました。#import とimport文を書いて NSMutableArray * arrayA = [[NSMutableArray array] autorelease]; NSMutableArray * arrayB = [[NSMutableArray array] autorelease]; [arrayA …

ゾンビになっているUITapGestureRecognizerを倒した

状況を説明するとBのViewControllerでUITapGestureRecognizerを使ってUIImageViewをタップしたら、特定の動作をするように対応していた。1〜5の順番で遷移させていくと、5のタイミングでクラッシュした。NSZombieEnabledを有効にしたら、下のようなログが出…

ゾンビ狩り

よくよく、EXC_BAD_ACCESSが起きて頭を抱えることが多いiOS開発では、開発中はゾンビを検出するオプションをつけておくと作業がはかどる。Product->Edit Schema->Enviroment Variables で以下の環境変数をYESに設定しておくと、クラッシュ時にどのクラスが原…