通过NSDictionary填充NSArray,NSDictionary通过.plist填充

时间:2012-03-24 10:08:43

标签: objective-c ios nsarray nsdictionary

以下是代码:

-(void)viewDidLoad {
    [super viewDidLoad];

    //Verb data read, sorted and assigned to a dictionary
    NSBundle *bundle = [NSBundle mainBundle];

    NSString *plistPath = [bundle pathForResource:@"VerbDictionary" ofType:@"plist"];    
    NSDictionary *verbDictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

    NSArray *verbs = [verbDictionary allKeys];
    NSArray *vSorted = [verbs sortedArrayUsingSelector:@selector(compare:)];

    NSString *selectedVerb = [vSorted objectAtIndex:0];
    NSArray *vArray = [verbDictionary objectForKey:selectedVerb];
    self.verbArrayData = [[NSArray alloc] initWithArray:vArray];
}

以下是我收到的错误消息的屏幕截图:

enter image description here

(来自https://plus.google.com/u/0/113629344949177123204/posts/SwHzXL6kvvJ

self.verbArrayData未填充vArrayself.verbDataArraynil,不应该是。{/ p>

我从头开始试过这个,之前我已经做过这个,实际上,过去,但是通过iOS 4和发布/保留内存管理。这是我开始使用的第一个纯iOS 5 ARC应用程序。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我想通了......但我不确定它为什么会起作用。 Self.verbArrayData无效。但是,只需verbArrayData就可以了。所以,我改变了self.verbArrayData = [[NSArray ...] TO to verbArrayData = [[NSArray ...]并编译并运行正常。因此,在这种情况下,self.verbArrayData是getter而不是setter;我认为。谢谢 - -