並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 14 件 / 14件

新着順 人気順

autoreleaseの検索結果1 - 14 件 / 14件

  • [iOS5] ARC : Autorelease, キャスト, 環境設定 | Natsu note

    これまでの記事はこちら: [iOS5] ARC (Automatic Reference Counting) : Overview [iOS5] ARC : プロパティ属性と使い方 [iOS5] ARC : Outletにはweakプロパティを使おう [iOS5] ARC : 循環参照 ARCまとめの最終回はAutoreleaseとキャストについてです。また、最後で簡単にですが、Xcodeの環境設定についても触れます。 Autorelease ARC環境下では、これまでのNSAutoreleasePoolは使えません。そうは言っても、別にAutorelease環境がなくなってしまったわけではなく、作法が少し変わったのですね。 まずは、参考までにmain.mを見てみましょう。 非ARC(マニュアルメモリ管理) int main(int argc, char *argv[]) { NSAuto

    • autorelease を使うべきなんだと気づくまでに時間かかりすぎた - 好き勝手に・げーあにん?

      ※2013/06/04 追記:今はARCの時代です。autoreleaseとかで悩んでないでARC使いましょう。過去のソースのメンテとかしてる人は頑張れ autorelease をケチらずに使うべきなんだということにようやく気づいた、Objective-C 初心者の私が Google Objective-C Style Guide を読みつつ思考垂れ流し。 Google Objective-Cスタイルガイド 日本語訳 Google Objective-C Style Guide 生成時に autorelease するのが望ましい 一時的なオブジェクトを新しく生成するときには、そのメソッドの後ろの方で個別に release するのではなく、オブジェクトの生成と同じ行で autorelease すること。 http://www.textdrop.net/google-styleguide-ja

        autorelease を使うべきなんだと気づくまでに時間かかりすぎた - 好き勝手に・げーあにん?
      • autoreleaseされたオブジェクトはいつ解放されるか - 24/7 twenty-four seven

        http://mtl.recruit.co.jp/blog/2009/01/iphoneiphonesdk.html つまり、デフォルトでは、autoreleaseされたインスタンスは、このプールにどんどん、追加されてゆく。ちょっとした文字列であっても NSString.stringWithFormatを乱発すると、メモリ不足になりかねないということです。注意、注意。 http://mtl.recruit.co.jp/blog/2009/01/iphoneiphonesdk.html NSAutoreleasePoolはイベントループが一周するたびに生成と破棄を繰り返します。 ですので、アプリケーション終了まで、オブジェクトが溜まっていくということはありません。 たいていは、autorelease済みのオブジェクトはメソッドを抜けた後に解放されます。 ひとつのメソッドで、一時オブジェクトを

          autoreleaseされたオブジェクトはいつ解放されるか - 24/7 twenty-four seven
        • libuv (libev) と Objective-C autorelease のはまりポイント - unknownplace.org

          iOS や Mac アプリで HTTP 以外のネットワーク機能をつけたいといった場合に、libuv や libev を組み込んで使うというのを割とよくする。方法としては以下のような感じでその機能用のスレッドをつくる: -(void)run { NSThread* thread = [[NSThread alloc] initWithTarget:self selector:@selector(loop) object:nil]; self.thread = thread; [thread release]; [thread start]; } スレッドの中身は大体こんな感じ: -(void)loop { NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init]; uv_loop_t* loop = uv_loop_new(); /

          • iPhone SDKにおけるautoreleaseの是非 - あたらしものずきっ!

            Interface Builderを捨てて完全にXcodeだけで作成するようになって、メモリ操作に気を使うケースが結構多くなってきたので、気をつけてることを書いてみることにする。 特に知識がなかったころは馬鹿正直にautoreleaseを使って放置してたんだけど、main.mに記述されているNSAutoreleasePoolの存在を知って、且つ NSAutoreleasePoolの動作を知って以来微妙だよなぁと思ってる。 autoreleaseの動作 main.mに記述されているNSAutoreleasePoolの役割をおおざっぱに書くと、ソースコード上でautoreleaseのメッセージが送られたオブジェクトの、メモリ上からの解放処理をまとめて担うという代物で、メモリ上での解放処理に細かく気を使わなくてよくなるのが特徴。ただ解放のタイミングとか指定がしにくい(できない?)から、結構メモリ

              iPhone SDKにおけるautoreleaseの是非 - あたらしものずきっ!
            • ARC forbids explicit message send of ‘autorelease’

              iOS5になってから開発環境を整えたPCで開発を始めると ARC forbids explicit message send of ‘autorelease’ 'release' is unavailable: not available in automatic reference counting mode というエラーがすごい数出てくる iOS5からはARCがメモリ管理を適切?に行ってくれるらしいのでreleaseやautoreleaseが不要な様です。 下位互換させる為にはまず PROJECT の Deployment Target を 3.0 等互換させたいVerに変更 エラー表示がうざいので Objective-C Automatic Reference Co... を YES から NO に変更 これでビルド通るはず。

                ARC forbids explicit message send of ‘autorelease’
              • Togetter - 「autoreleaseのひみつ」

                sakamoto.kazuki @splhack autorelease って何が起きるの? 解答例→ http://bit.ly/guOjkV http://bit.ly/fIqS1X 根元のNSObjectのautoreleaseメソッドが、NSAutoreleasePoolのaddObjectメソッドを呼ぶだけ。 2011-01-13 16:16:39

                  Togetter - 「autoreleaseのひみつ」
                • RubyMotion の autorelease_pool の使い方 - Watson's Blog

                  この記事は RubyMotion Advent Calendar 2012 の 10 日目の記事です。 つい最近ようやく RubyMotion API Reference が公開されましたが、みなさん見ていただけたでしょうか?RubyMotion のバグを取っていて、「このメソッド初めて見るんだけど何もの?」「ドキュメントが必要だよねぇ」みたいなやりとりをしながら、一生懸命リファレンスを作りました。 今回は autorelease_pool の使い方について書きます。 メモリサイクル iOS では、ボタンをタップなどするとイベントが発生します。イベントの開始時に自動的にメモリプールを生成し、イベント終了時にプールをリリースします。このときメモリプールに登録されている不要になったオブジェクトが一緒にリリースされます。 RubyMotion で作られたアプリも、これに従って不要になったオブジェ

                    RubyMotion の autorelease_pool の使い方 - Watson's Blog
                  • iPhoneアプリケーション開発でautoreleaseが非推奨の理由 混沌のiPhone開発ブログ

                    [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 アップル社公式の開発ガイドなどでは、iPhone OSをターゲットとしたアプリケーションを開発する場合、autoreleaseはなるべく避けるようにと書いてあります。この記事ではその理由を掘り下げてみようと思います。 この理由を明かす前に、まず推奨となっているretain countでの管理と、autoreleaseでの管理の違いを説明します。retain countで管理されているオブジェクトは、それをメモリー上に残しておきたい場合にretain countを0より大きい値になるようにしておきます。そのオブジェクトがallocやretainされるとカウントが増加し、releaseされればカウントが減少します。カウントが0になった状態でrun loop(ユーザーからの入力などのイ

                    • Objective-Cのautorelease

                      Objective-Cのautoreleaseで、実際に何が起こるのか。オープンソースのCocoa実装GNUstepのソースコードで追いかけてみました。 http://togetter.com/li/88945 「autoreleaseのひみつ」 Cocoa全クラスの親クラス NSObjectにautoreleaseメソッドがあり、このautoreleaseメソッドは、NSAutoreleasePoolクラスのクラスメソッドaddObject:メソッドを呼ぶだけです。 [hoge autorelease]; /* [NSAutoreleasePool addObject:hoge]; と同じ */ NSAutoreleasePool addObject:は、そのスレッドのカレントプールにオブジェクトを追加します。メインスレッドの場合、通常NSRunLoopのループ先頭で確保されたプールにな

                        Objective-Cのautorelease
                      • autoreleaseされたオブジェクトが解放されるタイミング | インサイドフラッギング

                        autoreleaseを使いすぎるとNSAutoreleasePoolに解放待ちのオブジェクトがたまってメモリを圧迫してしまう。と、思っていてinit/releaseを使うようにしていたのだけど、Application KitやUIKitの場合はそうではないようだ。 クラスリファレンスによると、メインスレッドでイベントループの最初にNSAutoreleasePoolが作られ、イベントループの最後にreleaseが送られるということらしい。つまり、イベントループが一周するごとにautoreleaseされたオブジェクトは解放されることになる。XCodeのテンプレートでは、main()の最初にNSAutoreleasePoolを作り最後にreleaseしていたので、autoreleaseされたオブジェクトはプログラムの終了時まで解放されないと勘違いしていた。 ということで、作ったオブジェクトをa

                        • 'autorelease' is unavailable: not available in automatic reference counting mode

                          たまにしか使わないものはなかなか覚えられません。 年のせいでしょうか… ショートカットで使用する記号と対応するキーは以下の通り。 林檎→システム環境設定→キーボード→修飾キー から以下の画面の通り確認できます。 今のところ、私が普段使うものは以下の通り。 もっと便利なものは色々有りそうですね。 オススメがありましたら教えて下さい<(_ _)> 1. ウィンドウ操作 操作 ショートカットキー 頻度 Spotlight検索 Control   + Space ☆☆☆ スクリーンショット Command + Shift + 3 ☆☆☆ ウィンドウをしまう Command + M ☆☆ ウィンドウを閉じる Command + Q ☆ アプリ切替(順周り) Command + Tab ☆☆ アプリ切替(逆周り) Command + Shift + Tab ☆☆ Finder(エクスプローラ) Com

                          • Autorelease poolを見栄えよく使うマクロ - moriyoshiの日記

                            Objective-C + C99限定なんだけど #define pool for (NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; pool; [pool drain], pool = 0) とかって定義しておくと void foo() { pool { NSObject *obj = [[MyObject alloc] init]; [obj autorelease]; } } のような書き方ができることに気づいた。 や、実はすでに似たようなマクロがどこかに定義されてたりして。

                              Autorelease poolを見栄えよく使うマクロ - moriyoshiの日記
                            • ykmt : mac » retain, release, autoreleaseについて考える

                              Objective-C のコードを書いていると、理解しているはずなのに、ときどきわからなくなる。 そう、retain、release、autorelease の3兄弟だ。 この例はとってもシンプル。何をしたいのか理解できないが。 - (void) hoge: (id)obj { UIView *aView = [[UIView alloc] initWithFrame:CGRectZero]; [myView addSubView:aView]; [self hoge:obj]; } どうやら UIView のインスタンスを作って、myView に追加したいらしい。 だけど、このコードだと、aViewがメモリリークする。 2行目で、aViewのretainCountが1になる。 3行目で、myViewがaViewを使うことになるので、aViewのretainCountが2になる。 そして、

                              1