構造体

使うか?わからんが構造体です。
クラスがあるから使うかは不明。
データ構造を表す時に使うものです。
定義方法は、下に記載した感じで、データ構造を書いていきます。

typedef struct {
    int personId;
    char *personName;
}person;

それで、どう使うかですが、上の構造体の場合、personって言う型になるので、

person person1;

と書いて変数を定義して使います。
後はですね、そのperson1の変数には、personIdとpersonNameが扱えるので、
下みたいな感じで利用します。

 person1.personId = 100;
 person1.personName = "testUser";
 NSLog(@"personId  :%d", person.personId);
 NSLog(@"personName:%s", person.personName);

ちなみに、構造体の定義のしかたいろいろあるのですが、
多分、使わないので、一番最初に書いた方法がいいかなと思います。
それとですね構造体のデータ定義に別の構造体で定義した型を使えます。
あたりまえなんですが、構造体もただのデータ型なんで、下みたい感じで使えます。

typedef struct {
    int personId;
    char *personName;
}person;
typedef struct {
    int divisionId;
    char *divisionName;
    person person;
}division;
int main(int argc, const char * argv[])
{
    person person1;
    person1.personId = 100;
    person1.personName = "testUser";
    division division1;
    division1.divisionId = 100;
    division1.divisionName = "testDivision";
    division1.person = &person1;
    person *person2 = division1.person;
    NSLog(@"personId  :%d", (*person2).personId);
    NSLog(@"personName:%s", (*person2).personName);
}

それとですねオブジェクトを構造体で使いたいと思うのですが...ARCが有効だと使えません。
ARCが有効の場合は、下みたい感じで書くとコンパイルエラーになります。

typedef struct{
    NSNumber *personId;
    NSString *personName;
}person2;

じゃあ...ARC切ればいいのですが、そうするとですね。
自分で、メモリの確保と解放しないといけなくなっちゃうので...どうなんですかね。