タグ

2012年3月2日のブックマーク (6件)

  • iOS で XML をパースする

    iOS で使える XML パーサーは色々あります。 iOS 標準で使えるものは以下の2点 Cocoa Touch フレームワークで提供されている NSXMLParser C言語のライブラリである libxml2 を直接利用 外部のライブラリでは主に以下のようなものがあります。 GDataXML KissXML TBXML XML パーサーの中でも SAX と呼ばれる少し扱いにくいが比較的高速で省メモリなもの。DOM と呼ばれる扱いやすいがメモリを多く消費しやすいものがあります。 今回は Cocoa Touch フレームワークで提供されている NSXMLParser の使い方を紹介します。 NSXMLParser は SAX タイプのパーサーで C言語のライブラリである libxml2 をラップしたクラスになります。XML パースのおおまかな流れは、インスタンスを初期化 → デリゲートを設定

    iOS で XML をパースする
    abetomotomo
    abetomotomo 2012/03/02
    xmlパース
  • XMLを解析したい - ちくわプログラマにっき

    iPhoneで利用できるXMLパーサにはいくつかありますが今回はiPhoneSDKに標準添付されているNSXMLParserを利用します。 ちなみに、NSXMLParser以外のXMLパーサには以下のようなものがあります。NSXMLParserはSAXベースのパーサなのに対し、TouchXMLやKissXMLはDOMベースのパーサとなります。SAXベースのXML解析はDOMベースと比較すると簡単とは言い難いので、よほど大きなXMLデータをあつかったりしない限りはこれらDOMベースのパーサを利用するのがいいかも。 TouchXML http://code.google.com/p/touchcode/ KissXML http://code.google.com/p/kissxml/ NSMLParserでXMLを解析する手順は以下の通りです。 XMLデータを用意する まずはXMLデータを用

    XMLを解析したい - ちくわプログラマにっき
    abetomotomo
    abetomotomo 2012/03/02
    xmlパース
  • Objective-C + Cocoaにおけるメモリ管理について

    #import <foundation /foundation.h> #import "MyObject.h" int main (int argc, const char * argv[]) { // (4) NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; // (5) MyObject* object1; object1 = [[MyObject alloc] init]; [object1 release]; // (6) MyObject* object2; object2 = [[[MyObject alloc] init] autorelease]; // (7) NSString* string0; string0 = [NSString stringWithCString:"new string"

  • メモリ管理を理解する(前編)

    クラスのインスタンス変数の所有権 あるクラスが、インスタンス変数として別のクラスのインスタンスを保持する場合があります。このときにも、オブジェクトの所有権について考慮しておく必要があります。 インスタンス変数という「容れ物」にオブジェクトを保存するとき、これが勝手に消えてしまわないように所有権を確保しておくのです。 第3回「Objective-Cのクラス定義を理解しよう」で触れたように、クラスのインスタンス変数にはアクセサというメソッドを通してアクセスします。 インスタンス変数に何らかのオブジェクトをセットするアクセサはセッターメソッドと呼ばれます。オブジェクトの所有権は、このセッターメソッドで確保すればよいことになります。 次のサンプルを見てみましょう。 01 #import <Foundation/Foundation.h> 02 03 @interface MyClass : NSO

    メモリ管理を理解する(前編)
  • Blogger

    Google のウェブログ公開ツールを使って、テキスト、写真、動画を共有できます。

  • releaseの使いどころ : As Sloth As Possible

    俺もメモリ管理を間違えて頻繁にアプリを落としてしまうゆとりプログラマなのであんまり偉そうなことも言えないのだけど、「releaseの使いどころ。メモリの辺りがどうしてもわからない。」を読んでいくつか思ったところがあるので書いときます。 「何度もinit」はしない 既に確保されているハズの変数を二度initするのはメモリリークだよね? 解放されている変数は、 if (obj == nil) では判別できないのだろうか。 ボタン押下時などに、同じロジックを走ることが多くて、何度もinitをしてしまうことが多いのだが。。。。 具体的なコードを見てないので間違ってるかもだけど、多分これ「何度もinitしちゃう」じゃなくて「開放してないオブジェクトを参照してる変数に、何度も新しいオブジェクトをつっこんじゃう」ってことだと思って話を進める(そうすると、どこからも参照が辿れないのにメモリが開放されてない

    releaseの使いどころ : As Sloth As Possible
    abetomotomo
    abetomotomo 2012/03/02
    メモリ 開放