Ok。クラス「Game」があり、クラス「Board」のインスタンスを作成してテストします。
「Board」クラスには辞書があり、それはどういうわけかその値を維持できないようです(?)コードを最小限に抑えようとしました:
ゲームクラス:
@interface Game : UIViewController{
Board *board;
}
-(void)testAgain;
@implementation Game
-(void)setup{
board = [Board alloc]createBoard];
[board test]; //returns right value
[self testAgain]; //returns (null), see output below
}
-(void)testAgain{
[board test];
}
-(void)didLoad{
[self setup];
}
ボードクラス:
@interface Board : NSObject{
@property(nonatomic, retain) NSMutableDictionary *dict;
-(Board *)createBoard;
-(void)test;
@implementation Board
@synthesize dict;
-(Board *)createBoard{
dict = [[NSMutableDictionary alloc]init];
[dict setObject:@"foo1" forKey:@"1"];
[dict setObject:@"foo2" forKey:@"2"];
[dict setObject:@"foo3" forKey:@"3"];
[dict setObject:@"foo4" forKey:@"4"];
[dict setObject:@"foo5" forKey:@"5"];
return self;
}
-(void)test{
NSLog(@"Test return: %@", [dict objectForKey:@"4"]);
}
次の出力:
2012-06-23 01:05:28.614 Game[21430:207] Test return: foo4
2012-06-23 01:05:32.539 Game[21430:207] Test return: (null)
事前に、助けてくれてありがとう!