2010年9月2日木曜日

クラスの調査

objective-cで、あるオブジェクトがどのクラスに属しているかを調べる方法です。


こんな感じのようです。
- (void)method:(id)object
{
    // objectがNSStringクラスかどうかを確認
    if ([object isKindOfClass:[NSString class]]) {
      // NSStringクラスの場合
      ...
    }

編集が終わったらキーボードを閉じる

iPhoneのソフトウェアキーボードを閉じる方法です。

UITextFieldにフォーカスが当たるとソフトウェアキーボードが出てきます。
キーボードの改行ボタンを押すと、UITextFieldにUIControlEventEditingDidEndOnExitイベントが飛んできますので、それを捕まえてUITextFieldからフォーカスを外してあげます。
フォーカスが外れるとキーボードが閉じ、めでたしめでたし。

コードはこんな感じです。resignFirstResponderメソッドを呼ぶことでUITextFieldからフォーカスを外してます。

- (void)viewDidLoad {
    UITextField *textField = [[[UITextField alloc]
                               initWithFrame:CGRectMake(10, 10, 200, 31)]
                              autorelease];
    textField.borderStyle = UITextBorderStyleRoundedRect;
    [textField addTarget:self
                  action:@selector(editingDidEnd:)
        forControlEvents:UIControlEventEditingDidEndOnExit];
    [self.view addSubview:textField];
}

- (void)editingDidEnd:(id)sender {
    UITextField *textField = (UITextField *)sender;
    [textField resignFirstResponder];
}

Interface Builderで同じ事を行う場合は、UITextFieldの「Did End on Exit」というイベントにアクションを設定してあげます。

2010年8月31日火曜日

AndroidとRTP

AndroidでRTP再生をするにはどうしたらいいのか調査中。
VideoViewはRTSPに対応しているけど、そうじゃなくて、直接RTPをさわりたいのです。
なんか支離滅裂なことを言っているかも。
調査継続です…。

2010年8月26日木曜日

json-simple

JSON.simple。JSONを扱うためのシンプルなJavaツールキットです。
JSONテキストのエンコードとデコードができます。

上記ページに型の対応表もあります。

2010年8月23日月曜日

Silverlightのデバッグ

Visual Studio 2010でSilverlightのデバッグ実行をすると、google chromeが起動します。
google chromeだとデバッグができないみたいで、ブレークポイントに全く反応しません。
まぁ、それは当然だなと思うのですが、じゃぁどうやればIEで実行できるようになるのか。

  1. ソリューションエクスプローラーからプロジェクト(ツリーのトップ)を選択する
  2. メニューから「ファイル」→「ブラウザーの選択」を選択する
  3. Internet Explorerを選択する

ソリューションエクスプローラーでプロジェクトを選択しないと、ファイルメニューに「ブラウザーの選択」が出現しません。
なにその裏技。

2010年8月17日火曜日

iPhoneでtwitterのOAuth

前にAndroidでtwitterのOAuth認証をやりましたが、今度はiPhoneでやってみます。

ライブラリとしては、MGTwitterEngineoauthconsumerを利用すると良いみたいです。
で、これらをwrapしているiPhone向けのライブラリTwitter-OAuth-iPhoneを使うのが一番簡単そうです。

まずGitを使ってソースコードを取得します。

git clone http://github.com/bengottlieb/Twitter-OAuth-iPhone.git

Demoディレクトリの下にOAuthTwitterDemo.xcodeprojがあるので起動します。
ベースSDKが無いって言われているので「iPhoneデバイス4.0」に変更します。


Code/OAuthTwitterDemoViewController.mにConsumer Keyを埋め込みます。

#define kOAuthConsumerKey @"" //REPLACE ME
#define kOAuthConsumerSecret @"" //REPLACE ME

エミュレーターで実行すると。


すごい。動きました。

ブラウザは内部のビューで処理してくれるし、PINコードも勝手に解析してくれます。
至れり尽くせり。とにかく早く実装したいという場合には良いかもです。

2010年8月11日水曜日

UIViewの判断

UIViewを判断するにはtagを使えば良いんですね。今までUIViewインスタンスを比較していました。

UIViewにtagというプロパティが存在するのでViewの特定に利用できます。
default値が0みたいなので、それ以外の値を使えば良いみたいです。