-1

NSDictionary に値を保存して取得しようとしています

オブジェクト

#import <Foundation/Foundation.h>
@class ATTTEstOBJ;

@interface ATTTEst : NSObject

@property (nonatomic, retain) NSString *string1;
@property (nonatomic, retain) NSString *string2;
@property (nonatomic, retain) ATTTEstOBJ *obj1;

@end


@interface ATTTEstOBJ : NSObject

@property (nonatomic, retain) NSString *string3;
@property (nonatomic, retain) NSString *string4;
@property (nonatomic, retain) NSString *array1;

@end

値を保存して取得するには、適切にエンコードする必要があることはわかっていますが、この場合、それは複合オブジェクトであり、対処方法がわかりません。

- (void) encodeWithCoder: (NSCoder *)coder

TLDR、複合値を辞書に保存して元に戻す方法

ATTTest辞書に保存して取得したい。

編集:詳細な説明

ATTTEst *test=[[ATTTEst alloc]init];
test.string1=@"a";
test.string2=@"b";


ATTTEstOBJ *obj=[[ATTTEstOBJ alloc]init];
obj.string3=@"c";
obj.string4=@"d";

test.obj1=obj;



NSMutableDictionary *dict=[[NSMutableDictionary alloc]initWithCapacity:3];

[dict setObject:test forKey:@"test"];
NSLog(@"%@",dict);

ATTTEst *tester=[dict objectForKey:test];
NSLog(@"%@",tester.obj1.string3);

ITはnull.as出力を示しています。値をcとして取得したいtester.obj1.string3

4

2 に答える 2

0
ATTTEst *tester=[dict objectForKey:test];

する必要があります

ATTTEst *tester=[dict objectForKey:@"test"];

testオブジェクトを取得するときに、( string の代わりに@"test") オブジェクトをキーとして使用しました。意図的ではなかったと思います。

于 2013-07-02T07:04:49.787 に答える