Objective-Cの構造体をNSMutableArrayで扱う

Objective-Cではオブジェクトを可変型の配列として扱うことのできるNSMutableArray(NSMutableDictionary)クラスがあります。しかし、これらのクラスではオブジェクトしか配列にすることしかできず、構造体を配列にすることができません。そこで、NSValueを用いて構造体をNSMutableArrayに追加して見ました

NSMutableArray *rangeArray = [[NSMutableArray alloc] init];

for (int i=0; i<10 ;i++){
 NSRange range = {i,1};
 NSLog(@”range:%d,%d”,range.location,range.length);
 NSValue* val = [NSValue valueWithBytes:&range objCType:@encode(NSRange)];
 [rangeArray addObject:val];
}

NSEnumerator *ranges = [rangeArray objectEnumerator];
id obj;
while ((obj = [ranges nextObject])) {
 NSRange range;
 [obj getValue:&range];
 NSLog(@”range:%d,%d”,range.location,range.length);
}

ほかにも、構造体に添え字をつけて配列にしたり、mallocで動的に確保することができますが、可変にすることができません。構造体のみを可変の配列にすることはあまりないかもしれませんが、この方法で可変の構造体を扱うことができました。

Facebookページもよろしくお願いします

CATEGORIES eラーニング, 北海道ラボby.a.takeuchi1 Comments2010.09.07
TAGS , ,  
記事の投稿者
a.takeuchi a

Facebook comments:

コメントをどうぞ

Eメールアドレスは公開されません。

Trackback URL

管理者の承認後に表示します。無関係な内容や、リンクだけで意見や感想のないものは承認しません。

  • 製品・サービス
    PC、iPhone対応のeラーニングシステム。20名まで無料でASPサービスを利用できます
    PC、iPhone対応のeラーニング学習管理システム(LMS)【SmartBrain】
    http://smartbrain.info/
    PC、iPhone対応のeラーニングシステム。ユーザ数無制限のASPコースをご用意。


    eラーニングポータルサイト【elearning.co.jp】
    http://elearning.co.jp/
    eラーニング専門企業(株)キバンインターナショナルの製品を紹介しています。


    コンテンツビジネス支援パック
    http://contentsbank.jp/

    Ustream配信、動画コンテンツ制作、セミナーにご利用いただけるレンタルスタジオ
    Ustreamレンタルスタジオ「パンダスタジオ」
    http://pandastudio.tv/

    eラーニング専門企業(株)キバンインターナショナルのスタッフが、eラーニングに関する情報・最新事情をBlogでご紹介。月50本程度の情報発信を行っています。
    ブログ「blog.eラーニング.co.jp」
    http://blog.elearning.co.jp/

  • アーカイブ
  • カテゴリー
  • Amazon
  • タグ