タグ

2010年4月15日のブックマーク (8件)

  • UIImageは簡単にリークする。。。 - That’s why, I’m here!

    iPhone SDKいまだに Objective-C の release はよく分かってない。確実なのは、C の free() とは違うようだということぐらいか。 iPod関係のアプリを作ると、どうしてもアルバムアートワークを表示したくなるが、なにも考えずに作ったらどんどんメモリリークしていった。XCodeでは、シミュレータの実行ではメモリの増減を監視できるが、iPhoneのほうは見えない。(3.1以降なら見えるかも。試してない)だから目にみえる現象としては動作が重くなっていって、最後にクラッシュ!となるぐらい。まあ処理が重くなったらリークしてるって思うようにしてる。 唯一見えるのはコンソールログ。最初は iPod Serverとか普通の人は知らない情報を見れて楽しいが、リークが始まると空き容量不足のワーニングやら、バックグラウンドの Safariが停止されたり、最後には音楽再生してるのに

  • UIImageの読み替え(releaseからの再ロード)の罠。 - mswar's はてなブログ

    UIImageでイメージロードしてたら、releaseしてるにも関わらず、メモリが一向に減らない・・・。 UIImageのクラスリファレンス読むとわかるんだが、どうやら一度読んだイメージをキャッシュしてくれちゃってるらしい。(限られたリソースしか使わないなら確かに便利だが) 内部的にはimageNamedに渡したファイル名と、生成されたイメージオブジェクトのポインタを対で覚えてるっぽい。 そのせいで、一度releaseしたのと同名のイメージを再度ロードした場合、そのreleaseしたはずのオブジェクトを返してくるせいか、それにさわるとBAD_ACCESS例外で止まる。 最初は、なんでこんな例外がスルーされるのか分からず、小一時間悩んでしまった・・・。 んで↓のように解決。 × UIImage* imageTmp = [UIImage imageNamed:@"imageName1.png"

    UIImageの読み替え(releaseからの再ロード)の罠。 - mswar's はてなブログ
  • Cocoaでいこう! Macらしく 第10回

    この記事は、MOSAが発行するデベロッパ向けのデジタルマガジンMOSADeN 第69号(2003年6月10日発行)に掲載された記事です。2~3ヶ月遅れで、ここに掲載して行きます。 前回で、TinyViewは第一段階の完成をみました。ですが、今までCやC++でプログラムを組まれて来た方は、メモリの管理について疑問を感じたのではないでしょうか。ファイルから読み込んだデータが(NSData *)dataとして渡されて来るけど、これを解放しているのは誰だろう?imageを勝手に解放してしまっているけど、imageViewはこれで困らないのだろうか? Objective-Cでは、この様な制御をリファレンスカウンタ方式で行っています。 ※既にリファレンスカウンタについてご存じの方は、「リファレンスカウンタの仕組み」は読み飛ばしてもかまいません。ですが「リファレンスカウンタの目的」は、是非お読み下さい。

  • iPhoneアプリ作成:テーブルビューセルのサンプルアプリが落ちる

    SoftBank Creativeの「はじめてのiPhoneプログラミング」のサンプルアプリを作成しながら悩んだことのメモです。 いろいろ悩んでます。 P.223「UITableViewCellのカスタムサブクラス」から始まるサンプルの作成で、Cellsアプリが実行時に不正に終了してしまい困りました。 ブレークしながら実行すると、以前悩んだときと同じように"EXC_BAD_INSTRUCTION"と表示されます。 こののサイトから取得したサンプルソースを参照したところ、iPhone SDK 2.1以上を使用している場合に変えなければならない所があるみたいです。 Jeff and Dave's Excellent iPhone Support Page - tableView:cellForRowAtIndexPathメソッドにおいて、の文中では次のようにあります。 NSArray *n

  • アプリが落ちないUIWebViewの使い方

    Copyright (C) iPhoneアプリ開発備忘録 All rights reserved. ブログ内で記したコード、内容の正確性は保証いたしません。 記載内容を実装したことにより発生した不具合・損害等の責任は一切負いません。 UIWebViewは、他のViewと使い方がちょっと違う。 普通にViewを終了するときに、UIWebViewをreleaceするだけではアプリが落ちることがある。(特にメモリ量が少ないiPhone3Gの場合) これに対処するコード。 deallocメソッドなどでUIWebViewをreleaceする前に、webView.delegate = nil;を追加する。 hogeController.h@interface hogeController : UIViewController { IBOutlet UIWebView *webView; } @prop

    アプリが落ちないUIWebViewの使い方
  • swfmillでケータイFlashを動的生成してみよう(インストール編)

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年5月時点の調査。

  • swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール | DigiTechLog Dot Com

  • Google App Engine アプリケーション用の便利な小物たち

    Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。このでは、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...

    Google App Engine アプリケーション用の便利な小物たち