我有一个 NSViewController 子类:
@property (retain) NSMutableArray* entities;
@property (retain) NSMutableArray* tiles;
在我的-init
方法中,两个数组都是用创建的+new
,并且每个都被赋予一个对象。之后,我打电话给NSLog(@"%@, %@", entities, tiles);
,它给了我预期的结果:
2012-12-30 15:07:04.160 Project Land III[2177:303] (
"<RBEntity: 0x100508170>"
), (
"<RBTile: 0x100508470>"
)
不过,我可以单击视图上的一个按钮,该按钮调用相同的日志函数,它会输出以下内容:
2012-12-30 15:07:06.071 Project Land III[2177:303] (null), (null)
几天来,我一直以某种形式被困在这个问题上。为什么世界上的数组是空的?
我很高兴发布更多代码,请告诉我!
界面:
#import <Cocoa/Cocoa.h>
#import "RBEntity.h"
#import "RBTile.h"
@interface RBMainViewController : NSViewController {
NSMutableArray* _entities;
NSMutableArray* _tiles;
}
@property (retain) NSMutableArray* entities;
@property (retain) NSMutableArray* tiles;
- (IBAction)log:(id)sender;
@end
我的-init
方法:
- (id)init {
self = [super init];
self.entities = [NSMutableArray new];
self.tiles = [NSMutableArray new];
[self.entities addObject:[RBEntity entityWithLocation:NSMakePoint(4, 5) type:FACEEATER]];
[self.tiles addObject:[RBTile tileWithLocation:NSMakePoint(10, 2) type:GRASS]];
NSLog(@"%@, %@", self.entities, self.tiles);
return self;
}