无法从另一个类访问NSMutableDictionary

时间:2014-03-14 22:06:37

标签: ios objective-c

我是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);

4 个答案:

答案 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
}