2

structObjective-CのCのようなものを作成することは可能ですか?私はそれをで使用できる必要があるNSArrayので、それは伝統的なものではありえませんstruct。今、私はこれを達成するためだけにクラス全体を宣言していますが、もっと簡単な方法があるのではないかと思っていました。

私が現在持っているもの:

@interface TextureFile : NSObject
@property NSString *name;
@property GLKTextureInfo *info;
@end

@implementation TextureFile
@synthesize name = _name;
@synthesize info = _info;
@end

NSMutableArray *textures;

私がやりたいこと:

typedef struct {
    NSString *name;
    GLKTextureInfo *info;
} TextureFile;

NSMutable array *textures;
4

1 に答える 1

1

使用しているデータの種類によって異なりますが、質問で使用している例は構造体としては問題ないようです。

NSArrayオブジェクトを必要とするC構造体をに格納する必要がある場合は、C構造体をNSValueに変換してそのように格納し、読み取り時にC構造体タイプに戻すことができます。

Appleのドキュメントを確認してください。

この構造体を考えると:

typedef struct {
    NSString *name;
    GLKTextureInfo *info;
} TextureFile;

保存するには:

TextureFile myStruct;
// set your stuct values

NSValue *anObj = [NSValue value:&myStruct withObjCType:@encode(TextureFile)];
NSArray *array = [NSArray arrayWithObjects:anObj, nil];

もう一度読むには:

NSValue *anObj = [array objectAtIndex:0];
TextureFile myStruct;
[anObj getValue:&myStruct];
于 2012-10-17T02:05:41.097 に答える