2012-01-01から1年間の記事一覧
MRC(Manual Reference Counting)とARC(Automatic Reference Counting)の両方に対応したコードを書くためには #if __has_feature(objc_arc) #if __has_feature(objc_arc_weak) という分岐により条件つきコンパイルをしなければならない。 今となっては少…
文字列を画像化する方法を調べてみたら、オフスクリーン描画をしてグラフィックスコンテキストから画像を得る方法が簡単だった。 Page not found · GitHub Pages 上記のページを参考にして、指定されたサイズの領域の中央に文字列を描画して画像化するコード…
Xcodeプロジェクトで使用している画像を新しいものに差し替えた後、実機をターゲットにしてビルドすると以下の3つのエラーが出るようになった。*1 While reading [プロジェクトで使用している画像へのフルパス*2] pngcrush caught libpng error: Could not f…
In-App Purchase(アプリ内課金)で課金対象プロダクトについての情報を取得するときなどには、SKProductsRequestオブジェクトに対してstartメッセージを送信する。 - (void)sendProductsRequestWithProductIdentifiers:(NSSet *)identifierSet delegate:(id…
セレクタを指定してオブジェクトにメッセージを送る処理について。 SEL sel = @selector(doSomething); if ([obj respondsToSelector:sel]) { [obj performSelector:sel]; } このようなコードをビルドすると、ARC有効時にperformSelector:の行について次の警…
XcodeでiOS Appのプロジェクトをビルドしたときに、xibファイル内のView Controllerについて次のような警告が出ることがあった。*1 *2 Unsupported Configuration … view outlet and NIB Name set 「view outlet and NIB Name set」で検索してみると、この警…
有効ではないSEL型変数にはnilとNULLのどちらを設定すべきか、少々気になったので調べてみた*1。 NULLにするのが「伝統的」 『詳解 Objective-C 2.0 第3版』の08-02節「メッセージ送信の仕組み」(185ページ)には次のように書かれている。 Objective-Cのプ…
Mac App Storeでアップデートを試みるとエラーが発生する OS X Mountain Lionのリリースに合わせてXcode v4.4もMac App Storeで公開された。さっそくアップデートをしようと思い、Mac App Storeの「購入済み」タブからXcodeのアップデートを試みたところ、次…
きっかけはひとつのツイートから。 .@mfks17 あ!IBoutletも弱参照か。。。 @iphone_dev_jp [@tokyopengwyn]— iphone_dev_jp (@iphone_dev_jp) June 8, 2012自分はARCを利用するようになってからもずっと、weakではなくstrongを使用してOutletをプロパティ宣…
O'Reilly eBookのセール中に$9.99で購入した*1『Mobile Design Pattern Gallery』*2を先日読み終えた。普段iOSアプリ制作を行なっている自分にとって興味深い話題を扱っている本だしセール期間中だったこともあり、勢いで購入して読み始めることになったのだ…
まったく未知の読書体験をしてみよう | fladdict上の記事で紹介されている読書体験をいつか試そうと思ったまま試さずに2ヶ月以上経ってしまったのだが、先ほどiBooksでEPUB形式のO'ReillyのeBooksを読んでいるときに、ふと思いつきでテーマを「夜間」にして…
Xcodeに標準でついてくるNetwork Link Conditionerという帯域制限アプリが次の記事で紹介されていたので試してみた。 標準で付いてくる開発用ネットワーク帯域制限アプリ | Cocoaの日々情報局 導入方法 /Developer/Applications/Utilities/Network Link Cond…
Xcodeをv4.3.1に更新した後あたりで気がついたのだが、デバッグ中にbreakpointで停止すると、該当箇所のソースコードではなくアセンブリコードが必ず表示されるようになってしまっていた。一応breakpointを設定したあたりで停止しているようなのだが、ステッ…
Mac App StoreでiOS 5.1に対応したXcode v4.3.1が公開されたので、さっそくインストールしてみた。 アップデート手順 Mac App Storeの「アップデート」タブからXcodeのアップデートを開始。アップデート完了後、Xcodeを起動すると初回起動時には「Xcode Comp…
実機やシミュレータでiOS Appのデバッグをしようとすると、Appの起動前に次のようなエラーメッセージが出てAppが実行できないことがある。 Couldn't register App Identifier with the bootstrap server. Error: unknown error code. This generally means t…
カテゴリの定義を含むStatic Libraryを使用すると、そのカテゴリで定義しているメソッドを呼び出すところで例外が発生してプログラムがクラッシュしてしまうことがあった。原因を調べてみたところ、まさに次の記事で説明している通り、リンカフラグに "-ObjC…
Xcode v4.3からXcode.appのパスが変わった*1ため、xcodebuildコマンドでエラーが発生することがある。このときには、xcode-selectコマンドでXcode.appのパスを指定するとよいとのこと。 参考 xcodebuildにXcodeの場所が変わったことを教える - Hello, world!…
Xcode v4.3がMac App Storeで公開されたので、v4.2.1からv4.3に更新することにした。*1Mac App StoreでXcode*2についての「無料」ボタンを押下するとボタンの表示が「Appをインストール」に変化する。この状態のボタンをさらに押下すると(認証が行われてい…
アドレス帳情報にアクセスする前にユーザに許可を求め、許可が得られたらハッシュ化した連絡先情報を使用する。MITライセンス。crossforward/HashedContacts · GitHub
NSFetchRequestクラスのインスタンスメソッドexecuteFetchRequest:error:によってフェッチ処理を行うことができる。フェッチ結果は配列(NSArrayオブジェクト)形式で得られる。この配列の各要素はデフォルトではNSManagedObjectオブジェクトだが、フェッチ…
Xcode 4.2でBTServerのCPU使用率が非常に高くなる問題 以前、Mac OS X 10.6.8 + Xcode 4.2の環境下でBTServerのCPU使用率が非常に高くなる件について記事を書いた。 Xcode 4.2付属のiOSシミュレータを起動し続けるとBTServerのCPU使用率が非常に高くなる(追…
iOS Appが通話履歴情報にアクセスする方法がないか調べてみたら、このような情報を発見。 Accessing iPhone Call History | Bushra Shahid's iOS stuff ios - How to get call history from iphone? - Stack Overflow iOS5より前のバージョンのiOSでは次のフ…
Managed Object Contextはスレッドセーフではない Core Dataを利用するiOS Appの処理の一部をマルチスレッド実行するように修正したところ、実行時エラーが発生して強制終了するようになってしまった。このときデバッグコンソールには次のようなメッセージが…
あけましておめでとうございます。本年もよろしくお願いいたします。一年の計は元旦にありというけれど、今年の抱負を語る前に、自分が昨年の年始にどのようなことを言っていたのかを振り返ってみることにする。その時点での考えとその後の1年の流れをふまえ…