Hi-farm blog

ActionScript 3.0 , AIR , FLEXからCocoa, OpenGL

Archive for July, 2009

現在作っているアプリでは、iPhoneからファイルとデータをアップロードする仕組みが必要になり調べてみたのですが、なかなか目的を達成してくれるクラスやライブラリが見つからなかったので自分で作ってみました。
ソースとテストで使ったPHPのファイルもgithubのここにおいています。
http://wiki.github.com/mmlemon/HTTPMultipartPost

ソースにはcopyrightとか書いていますが、改編などはご自由にどうぞ。ただし、こちらではいかなる責任も負いませんのでご了承下さい。

内容は、こんな感じです。

MultipartPostHelper:このクラスを使ってファイルのアップロードを行います。
実際の使い方は、HTTPPostSample2ViewController.mをご確認下さい。

使用する流れは下記の通りです:

  1. 送信先URLを設定する
  2. 文字列データ部分を作成する(Key用の配列と値用の配列が必要です。)
  3. バイナリデータ部分を作成する(このとき、data=実際のデータ:NSData、orgName:ファイル名、postName:Postで使われる名前。例:orgName=”file.txt”, postName=”postFile”の場合、PHPでは、$_FILES["postFile"]["name"]とすると、”file.txt”が返されます。)
  4. 文字データをMultipartPostHelperに追加
  5. バイナリデータをMultipartPostHelperに追加
  6. sendで送信

以上です。

Word Pressの自動アップデート

連続Postですみません。

最近WordPress上でアップデートが可能になってとても便利だな〜なんてのんびり喜んでいたのですが、google analysisのプラグインの設定が消えてしまう、という問題が起こりました。

実際このサイトは誰が見ているんだろう、という位なのでpvとかあまり意識していなかったのですが、ある日を境にアクセス数が0になってたので、さすがにこれはおかしいと思い調べてみると、UA-00000-0というような値になってしまっていました。。。。

メニュー下部のここをクリックして設定を確認してみるとよいと思います。

wpの環境設定

wpの環境設定

  • 0 Comments
  • Filed under: 未分類
  • provisioningファイルのアイコン

    つい先日、iPhoneに新しい機種、iPhone 3GSが発売されました。
    なので早速僕も購入して、現在開発中のアプリを実機に入れて試そうとしたときにちょっと上手くいかなかったのでメモしておきます。

    プロジェクトファイルを開いて、Device – 3.0 | DebugとしてiPhone 3GSに繋ごうとすると、

    「供給された iPhone OS デバイスが接続されていません」


    とか言われてしまい、実機にアプリをインストールすることができなかった。

    当然と言えば当然の話しなんですが、provisioningファイル作るときに、DevicesでIDを登録してるんでした。この辺に関しては、iTunes経由で古いiPhoneからうまい具合に調整してくれていると思ってたのですが、そんなこと無かったです。考えてみれば

    Deviceが違う=Device IDが違う、


    ということなので当然なのですが。

    Deviceに対応していないprovisioningファイルを使おうとしても使えないのは当然です。なので、iPhone Developer Programで新しい機種のIDを登録し、Provisioningを修正して新しい機種にも対応するProvisioningファイルを再生成し、インストールすると、無事に実機にアプリケーションをインストールすることができるようになりました!めでたしめでたし。

    追伸:

    こんなところでつまづく僕ですが、ほそぼそと開発合宿なるものをやっていますので、ご興味あれば参加表明していただければと思います。

    http://blog.hi-farm.net/2009/07/01/200907の近況/

  • 2 Comments
  • Filed under: iPhone勉強
  • タイマー表示

    今作っているアプリで時間経過を表示する必要がありましたので、サンプルを作成しました。

    ほとんどこちらのサイト様を参考にしています。ありがとうございます。

    http://cocoa.synck.jp/1237172145.html


    一式はgithubにおきましたので、必要でしたらこちらからどうぞ。
    http://github.com/mmlemon/iPhoneTimerSample/tree/master

    ストップウォッチアプリのキャプチャ

    ストップウォッチアプリのキャプチャ

    操作方法:

    • Startボタンをタップ:計測開始
    • Stopボタンをタップ:計測終了
    • 再びStartをタップした場合、0秒から再計測します

    ソースについて:

    時間を測る事は、

    開始時刻をNSTimeIntervalで保持します。

    現在時刻を保持する方法は、

    NSTimeInterval time = [NSDate timeIntervalSinceReferenceDate];

    を使うだけです。

    二つのNSTimeIntervalを比較するには、単純に引き算するだけです。

    NSTimeInterval currentTime = [NSDate timeIntervalSinceReferenceDate] – time;

    (※timeは計測開始時刻を保持するNSTimeInterval)

    定期的に表示時刻をアップデートするにはNSTimerを使います。こんな感じ。

    
    self.timer =  [NSTimer scheduledTimerWithTimeInterval: 0.01                                   target:self                                  selector:@selector(updateTimer:)                                  userInfo:nil                                   repeats:YES];
    

    scheduledTimerWithTImeIntervalがタイマーが呼ばれる期間であり、

    selectorがこのscheduledTimerWithTimeIntervalで定期的に呼ばれるセレクタ(メソッド?)である、という事を押さえておけばよいと思います。

    ちなみに、selectorで呼ばれるものは、

    -(void)updateTimer:(NSTimer *)t

    のようになる必要があります。

    ここで経過時刻を測定、表示すれば継続的に表示が更新されるようになります。

    タイマーを終了する場合は、

    [self.timer invalidate];
    

    として下さい。

    追記1:

    開始時刻と累積時刻が二重に存在しているので上手くないですね。。

    追記2:

    github初めて使ったんですけど、つまらないところでひっかかっちゃいましたが、それはまた別記事にします。

    追記3:

    こんな程度の内容ですが、記事を書く事で改めて気づく事がありました。

    これからも続けようと思います。


    2009/07の近況

    かなり投稿回数が少なくなってしまっているブログですが、つい先日までは本業で時間をいっぱいいっぱい使ってて、全く動けない状態でした。

    だけど、これからは時間ができたのでiPhone開発合宿の予定を再調整したいです。http://123.writeboard.com/8464cc38ec43064f5 pass:ipdc09

    とてもありがたいことに今月は結構休みを頂けることになったので、この間にflashとiPhoneの一人合宿?も行って成長しないと!

  • 0 Comments
  • Filed under: 未分類