タグ

Objective-Cに関するgamiのブックマーク (10)

  • = ARC retain cycle - @peccul is peccu

    [2012-06-06 21:05:12] ARC retain cycleと警告されるわけですよ. Capturing 'self' strongly in this block is likely to lead to a retain cycle そのときのコードはこんな感じ.ブロックでself参照したり,インスタンス変数参照したりしてると怒られる. @implementation Hoge -(void)hogeMethod{ hogeHandler = ^(Fuga *fuga){ [self someMethod:fuga]; }; } @end これ,selfがずっと存在するからhogeHandlerの参照が減らないのね.だから__blockつけてやると,Reference Count使わない指定ができるそうな. 訂正版 @implementation Hoge -(void

    = ARC retain cycle - @peccul is peccu
  • Objective-Cの『遅さ』を計測したら、JavaやC++の5倍も遅かった

    なお、メモリ消費量はtopコマンドで測ったので、かなり大雑把な数字だ。また、Cで同様の処理のコードを書くと、ほぼC++と同じ速度になる。 追記(2011/02/17 8:50):Rubyによるベンチマークを追加。 追記(2011/02/17 11:00):Smalltalkによるベンチマークを追加。ソースコードは「Smalltalkのtは小文字です」のループ回数を修正した。 追記(2011/02/17 16:00):Perlによるベンチマークを追加。 追記(2011/02/18 10:30):Java 1.6.0_22で実行した、Scalaによるベンチマークを追加。また、clang/llvmでC++とObjective Cの値を取り直し、改善が見られないのを確認。 追記(2011/02/18 14:30):Ruby 1.8.7によるベンチマークを追加。1.9.2との速度差については、@IT

    Objective-Cの『遅さ』を計測したら、JavaやC++の5倍も遅かった
  • オブジェクトの状態をファイルに保存・復元する。(シリアライズ・デシリアライズ) - 24/7 twenty-four seven

    参考サイト iPhone Tutorial - Archivers, unarchivers, and serialization on Vimeo Cocoaフレームワークには、もともとオブジェクトをシリアライズするための仕組みが用意されているので簡単です。 NSCodingプロトコルで定義されているメソッドを実装すれば、オブジェクトがシリアライズ可能になります。 例えば、下のような設定画面の値を保存するときに便利です。 設定の保存にはもうひとつ、NSUserDefaultsを使う方法もあります。 しかし、設定画面がiPhoneの「設定」のところになってしまい、設定項目に気づかないことがあったり、設定を変更するためにはアプリケーションを終了しなければならないなど、不便なので私は使いません。 手順 シリアライズされるクラスにNSCodingプロトコルのメソッドを実装する。 NSKeyedA

    オブジェクトの状態をファイルに保存・復元する。(シリアライズ・デシリアライズ) - 24/7 twenty-four seven
  • 二重解放 (double free) や 解放済みオブジェクトへのアクセス (EXC_BAD_ACCESS) によるクラッシュを Instruments を使って調べる - 24/7 twe...

    iPhone アプリケーションのプログラミングでは、メモリ管理に注意する必要があります。 特に解放済みのオブジェクトをさらに解放してしまったり(二重解放)、解放済みのオブジェクトを操作しようとした場合は即座にアプリがクラッシュしてしまいます。 このようなメモリ関連のバグによるクラッシュの場合、何も残さずに突然終了してしまうことが多いため、原因の究明が困難です。 そんなメモリ管理のバグを Instruments を使って少し簡単に調査する方法を紹介します。 残念ながら、シミュレータでしが機能しないのですが、それでも原因の解明が簡単になる場合が結構あります。 下記のサイトでは、動画と画像でさらに詳しく解説されているので、そちらも参考にしてください。 iPhone Memory Debugging with NSZombie and Instruments — markj.net プロジェクト

    二重解放 (double free) や 解放済みオブジェクトへのアクセス (EXC_BAD_ACCESS) によるクラッシュを Instruments を使って調べる - 24/7 twe...
  • 【Objective-C】カテゴリ使って既存クラスに機能を追加する | iphoneアプリで稼げるのか

    Objective-Cのカテゴリという仕組みを使うと、1つのクラスを複数のクラスに分割したり、クラスに新しい機能を追加したりできる。 このカテゴリの強力なところは、NSStringのようなCocoa Frameworkで提供されているクラス達に対しても、メソッドを追加できるところ。 例えば、ベーシック認証をリクエストのヘッダ内に認証情報を持たせて行いたい。その時、ユーザ名、パスワードはbase64エンコードが必要になるのだけど、既存のNSStringにはそんな便利メソッドはない。 そんな時は、このカテゴリを使ってNSStringにbase64エンコードを行うメソッドを追加してしまう。 このカテゴリによるクラス拡張はオープンソースを眺めてると必ず出てくる。 json-framework – Google Code google-toolbox-for-macGoogle C

  • http://hmdt.jp/cocoaProg/Foundation/NSDictionary/NSDictionary.html

  • こたつつきみかん » なぜ Objective-C は気持ち悪いのか – 完

    なぜ Objective-C は気持ち悪いのか分析してみる企画。これまで、見た目やクラスについての気持ち悪さを考えましたが、最後に全体的に気持ち悪くしている要素を探ろうと思います。 参照カウンタ方式 Objective-C をはじめて最初に躓くのが、このメモリ管理だと思います。わかってしまえば、非常に簡単なルールで管理されていることが理解できるのですが、理解するのが少し難しく感じる方も多いようです。また、Javaの人から見ればガベージコレクションないの?C++の人から見れば、スマートポインタないの?なぜいまどき、煩わしそうな参照カウンタ方式を採用しているのだろうか、と思われることでしょう。しかし、実際には、それほど煩わしいものでもなく、ガベージコレクションよりはパフォーマンスはいいので、デメリットしかないわけではありません。2.0からは、ガベージコレクションを有効にもできます。 nilが無

  • Google Objective-Cスタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • iOSアプリ開発のメモリ管理で気をつけること - A Day In The Life

    Objective-C での開発にだいぶ慣れてきたのですが、いまだメモリ管理まわりでハマることが多いのでまとめてみました。 メモリを確保してから解放するまでの流れ メモリを確保してから解放するまでの流れは以下の図のようになります(図はアップルのサイトから引用)。 alloc または init すると参照カウントが1になります alloc または init 系メソッドを呼ぶと参照カウントが1になります。 このように書いたのは、クラスの仕様によって alloc メソッドで retainCount が1になるオブジェクトと init 系のメソッドで retainCount が1になるオブジェクトがあるためです。alloc と init はセットで呼ばれることがほとんどなのでこの違いが問題になることはないと思いますが念のため。 int main() { /* allocで参照カウント1 */ NS

  • 知識ゼロからはじめるiPhoneアプリ開発 - A Day In The Life

    iPhone アプリ開発を初めてはや2年。わけわからんレベルからなんとかアプリをリリースするところまでこぎつけました。もともと趣味ではじめた事ですが今は仕事でも iPhone アプリ開発をしています。ここに至るまで自分が調べたことや参考にした文書をアプリの構想からアプリをリリースするまでの手順にそってまとめてみました。 iOSアプリ開発関連のを書きました 初めて iOS アプリ開発をされるかた向けに「プロの力を身につける iPhone/iPadアプリケーション開発の教科書」というを書きました。 この記事を読んで iOS アプリ開発に興味を持たれた方におすすめです(2013年2月26日発売)。2015年1月17日にSwiftに対応した改訂版がでました。 の内容に関する詳しい記事はこちらです。 iOSアプリ開発のを書きました 初期投資 8400円とプライベートな時間、iPhoneまたは

    知識ゼロからはじめるiPhoneアプリ開発 - A Day In The Life
  • 1