2011年2月24日木曜日

GDataObject の基本

GDataObject についての説明を picasa の場合で考えてみる。
Servers respond to client GData requests with feeds that include lists of entries.

Each feed and entry is composed of elements. Elements represent either standard Atom XML elements, or custom-defined GData elements.

Feeds, entries, and elements are derived from GDataObject, the base class that implements XML parsing and generation.

おおよそのイメージはこんな感じなのだろうか。



参照:
gdata-objectivec-client -> Wiki -> GDataObjeCIntroduction -> Google Data APIs Basics

2011年2月2日水曜日

オブジェクトの所有権の取得 retain

受け取ったオブジェクトを破棄したくない場合もあります。たとえば、インスタンス変数にオブジェクトをキャッシュする必要がある場合です。
このような場合は、オブジェクトが不要かどうかを知っているのは自分だけであるため使用中にオブジェクトが破棄されないことを保証する機能が必要となります。これは、retainメッセージを使って行います。

 – (void)setMainSprocket:(Sprocket *)newSprocket {
 if (mainSprocket != newSprocket) { // 古いインスタンス変数を確実に解放するための判定を行う
 [mainSprocket release];
 mainSprocket = [newSprocket retain]; // 参照カウンタが1増える
    }
 }

---------------
参照
Cocoaメモリ管理プログラミングガイド オブジェクトの所有権の取得

2011年1月15日土曜日

ファイルを素早く開く(定義、実装にジャンプする)

ファイルを素早く開く(定義、実装にジャンプする)ショートカット
⌘ + shift + d

2011年1月7日金曜日

キーボードをしまう

キーボードをしまうには、現在ファーストレスポンダになっているテキストベースビューのresignFirstResponderメソッドを呼び出します。
Text Viewがファーストレスポンダの状態でなくなると、現在の編集セッションは終了し、そのことがデリゲートに通知されます。
そして、キーボードが消えます。つまり、myTextFieldという変数が、現在ファーストレスポンダになっているUITextFieldオブジェクトを指す場合、キーボードをしまうには以下のコードを実行するだけです。
[myTextField resignFirstResponder];
---------------------------------
以下のような状態の場合、












「LogIn」ボタンを押下した時、キーボードが隠れるようにするためにはログインアクション実行後、テキストフィールド(この場合は、ID と PASSWARD を入力するフィールド)のresignFirstResponderメソッドを呼び出す。

参照:
iPhone アプリケーションプログラミングガイド テキストとWeb->キーボードの管理->キーボードをしまう

2010年12月23日木曜日

three20 をプロジェクトに追加する

1.
プロジェクトフォルダ内に three20 フォルダを置く

2.
スクリプト実行

python ./src/scripts/ttmodule.py -p (プロジェクトフォルダへのパス)/(プロジェクト名).xcodeproj -c Debug -c Release Three20

python ./src/scripts/ttmodule.py -p (プロジェクトフォルダへのパス)/(プロジェクト名).xcodeproj Three20 // " -c Debug -c Release " オプションを付けると、他のライブラリを追加したときにリンクエラーが出るので使用をやめた

3.
ヘッダ検索パスに追加
(three20 フォルダへのパス)/three20/Build/Products/three20

4.
他のリンカフラグに、 -all_load を追加する(私の場合、すでに -ObjC -lxml2 が追加されているのでこれで3つ追加されていることになる)。
---------------------
git のthree20 のページを参照する。
色々説明がかいてあるので。

three20 gitページ
↑ページにヘルプを見ろと書いてる
python ./src/scripts/ttmodule.py -h

ヘルプに以下のような記述
Add the Three20 project settings to the Debug and Release configurations.
  This includes adding the header search path and linker flags.
  > ttmodule.py -p path/to/myApp.xcodeproj -c Debug -c Release
→ヘッダ検索パスとリンカフラグを追加すると書いてある

2010年12月2日木曜日

GDA のクラス関係

Google Data APIs Objective-c Client Library (GDA) の、picasa 関連のクラス関係図をxcode で一部可視化してみる。






GDataFeedPhotoBase と GDataEntryPhotoBase のスーパークラスは共に、GDataObject クラスである。

--------
xcode でクラス図を作成する。
設計 -> クラスモデル -> クイックモデル

2010年12月1日水曜日

UIImage でURL の画像を表示する。

  NSString *path = @"http://*******/************/**.jpg"; // URL
NSURL* url = [NSURL URLWithString:path];
NSData* data = [NSData dataWithContentsOfURL:url];
photo = [[UIImageView alloc] initWithImage:[[UIImage alloc] initWithData:data]];
[self.view photo];