我是Objective C的新手,我在从另一个类读取NSMutableDisctionary时遇到了问题。 NSMutableDictionary本身在ViewController类中运行良好,但是当我尝试在TestResults类中读取它时,我得到空字典。我哪里做错了?谢谢!
ViewController.h
@property NSMutableDictionary *storedAnswers;
ViewController.m
@implementation ViewController
@synthesize questionScrollView;
- (id)init
{
self = [super init];
if (self) {
[_storedAnswers setObject:@"aaa" forKey:@"bbb"];
}
return self;
}
TestResults.h
#import "ViewController.h"
ViewController *answers = [[ViewController alloc] init];
NSLog(@"%@",answers.storedAnswers);
答案 0 :(得分:2)
您正好访问字典。您虽然没有访问正确的ViewController实例。您需要获取对视图控制器的引用 - 而不仅仅是实例化视图控制器的另一个实例。
答案 1 :(得分:0)
是什么让你认为_storedAnswers不是nil?
答案 2 :(得分:0)
_storedAnswers永远不会被初始化(我们可以在这里看到)。添加:
_storedAnswers = [NSMutableDictionary new];
开始使用之前。
答案 3 :(得分:0)
<强> ViewController.h 强>
@property NSMutableDictionary *storedAnswers;
<强> ViewController.m 强>
@implementation ViewController
@synthesize questionScrollView;
- (id)init
{
self = [super init];
if (self) {
_storedAnswers = [NSMutableDictionary alloc] init];
[_storedAnswers setObject:@"aaa" forKey:@"bbb"];
}
return self;
}
- (void) dealloc
{
_storedAnswers = nil; // free memory if ARC is enable
}