ネットで調べたり本を見てみたり、してみたのですが
中々良いサイトが見つからなく、こちらで質問させて頂きました。
以下のような二元配列で用意された、構造体の変数をNSUserDefaultに読み込み/保存したいです。
#define TBL_WIDTH 20
#define TBL_HEIGHT 10
typedef struct{
int a;
int b;
int c;
}GAME_DATA;
static GAME_DATA Game[TBL_HEIGHT][TBL_WIDTH];
変換する際にNSValue型に変換しなければならないようで
試してみたのですが、プログラムが強制終了してしまいます。
考えているのは
NSMutableArrayに格納 → NSData型に変換 → NSUsedefaultに保存
といったステップです。
Objective-Cの部分がよく理解出来ておらず、
これでない方が良い場合、そちらに変更したいです。
void TestLoad(){
for(int y=0; y<TBL_HEIGHT; y++){
for(int x=0; x<TBL_WIDTH; x++){
Game[y][x].a = ***;
Game[y][x].b = ***;
Game[y][x].c = ***;
}
}
}
void TestSave(){
NSMutableArray *array = [[NSMutableArray alloc] init];
for(int y=0; y<TBL_HEIGHT; y++){
NSMutableArray *temp = [[NSMutableArray alloc] init];
for(int x=0; x<TBL_WIDTH; x++){
GAME_DATA item;
item.a = Game[y][x].a;
item.b = Game[y][x].b;
item.c = Game[y][x].c;
NSValue *value = [NSValue value:&item withObjCType:@encode(GAME_DATA)];
[temp addObject:value];
}
[array addObject:temp];
[temp release];
}
GAME_DATA Game;
// この部分
//[[[array objectAtIndex:0] objectAtIndex:0] getValue:&Game]];
NSLog( @"test save %d", Game.a );
[array release];
//
// NSValue *value = [NSValue value:&rgba withObjCType:@encode(RGBA)];
}
何卒アドバイスを頂けないでしょうか。