タグ

ブックマーク / ez-net.jp (6)

  • NSThread で別スレッドを起動する : Objective-C プログラミング

    Objective-C で別スレッドを起動するには、"performSelectorInBackground:withObject:" メソッドや "NSOperation" クラスを使った方法もありますが、ここでは "NSThread" クラスを使った方法について、記してみたいと思います。 NSThread では、指定したメソッドを別スレッドで実行することができます。 例えば、次のようにして、別スレッドでの処理を行うメソッドを定義しておきます。

    watanata2000
    watanata2000 2012/03/02
    NSThread 使い方
  • 任意のメソッドを 3 つ以上の引数を添えて実行したい場合 : Objective-C プログラミング

    Objective-C では "performSelector" メソッドを使用することで、オブジェクト内の任意のメソッドを簡単に呼び出すことができます。"performSelectorInBackground" などで簡単に、別スレッドでメソッドを実行できるところも魅力です。 ただ、標準の "performSelector" メソッドでは、最大で 2 つまでしかメソッドを指定することができないので、それ以上の引数を取る場合には、"NSInvocation" クラスを使って、メソッドを呼び出す必要があります。 たとえば、とあるオブジェクト "argTarget" のメソッド "argSelector" を任意の数の引数 "argWithObjects" を添えて実行するメソッドを次のように定義してみます。 // "target" のメソッド "selector" を任意の数の引数 "wit

    watanata2000
    watanata2000 2012/03/02
    SEL 型 @selector 引数 3つ以上
  • 可変長引数でオブジェクトを簡単に受け取る : Objective-C プログラミング

    Objective-C では、状況によって個数の異なるオブジェクトを引数で受け取るメソッドを実装したいときに、わざわざ NSArray 型の引数を用意してもらわなくても、簡単に受け取れるようにすることができます。 そのためには、まずはメソッドのプロトタイプとして、次のように宣言します。 // メソッドの引数は可変長引数として宣言します。最後に nil で終わることを明示すると便利です。 - (void)setName:(NSString*)aName values:(NSString*)values, ... NS_REQUIRES_NIL_TERMINATION; このように、この例では aName で指定された名前と併せて、任意の数の NSString* 型の引数を取るメソッドの宣言ができました。 ここで、最後に "NS_REQUIRES_NIL_TERMINATION" というキーワ

    watanata2000
    watanata2000 2011/12/21
    可変長引数 操作方法
  • マルチスレッド実装時の留意点 : Objective-C プログラミング

    Objective-C では、"performSelectorInBackground:withObject:" メソッドや "NSOperation" クラス、NSThread クラス などを使用して、別スレッドで処理を行うことができるようになっています。 ここでは、別スレッドでの処理を記述するにあたっての留意点に触れてみたいと思います。 autolerease スコープ Objective-C では、autolerease メソッドを使用して、オブジェクトを自動的に開放する仕組みが用意されています。 autolerease メソッドを使うと、予め用意されたオートリリースプールによってその変数が管理されて、オートリリースプールのスコープを抜ける時に、その管理下にある変数もリリースされる仕組みになっています。 ただ、立ち上げたばかりのスレッドでは、オートリリースプールは用意されていないよう

    watanata2000
    watanata2000 2011/10/06
    NSThread スレッド実装 @synchronized
  • 文字列から NSDate に変換する : Objective-C プログラミング - 日付のデータを取り扱う

    Objective-C で、文字列 NSString から日付 NSDate に変換するには、NSDateFormatter クラスを利用します。 NSDateFormatter に文字列の書式を渡した後で、日付からその書式にそって NSDate を取得します。なお、これとは逆に NSDate 型を文字列に変換する方法については NSDate を文字列に変換する を参考にしてください。 たとえば、"2010-06-27" を表す NSDate を取得するには、次のようにします。 NSDate* date_converted; NSString* date_source = @"2010-06-27"; // NSDateFormatter を用意します。 NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; // 変換用の

    watanata2000
    watanata2000 2011/09/09
    文字列 日付変換 NSString → NSDate
  • iPhone Developer Program に登録する

    Apple iPhone のアプリケーションを開発し、それを公開するためには、有償の年間プログラム iPhone Developer Program に参加する必要があります。 平成 22 年 2 月 15 日現在、これを登録しない限りはアプリケーションを iPhone 実機でテストできないですし、AppStore でアプリケーションを配布することもできません。Intel Mac 上のエミュレーターを使っての開発、動作テストのみとなります。 この iPhone Developer Program、平成 22 年 2 月 16 日現在、1 年契約で 10,800 円の費用がかかるのですけど、この契約期間が切れた後も、既に販売中の自作アプリケーションは販売し続けることができるそうです。また、期限を過ぎてもアプリケーションの販売を取り下げることができますが、追加開発はできなくなるような感じのよう

    watanata2000
    watanata2000 2010/06/10
    iPhone Developer Program 登録 手続き
  • 1