我正在做一个Iphone应用程序,在委托类中我从另一个类调用一个方法,该方法返回一个填充了我需要的信息的NSMutableArray:
NSMutableArray *array = [[NSMutableArray initWithObjects:nil] retain];
array = [xml loadXML:@"info.xml"];
现在我想将这个数组传递给viewController类,这样我就可以使用我的可变数组。我做了以下事情:
...
[self.window addSubview:viewController.view];
[self.viewController loadLocations:array];
[self.window makeKeyAndVisible];
在委托中,数组没问题,它有我想要的数据,但是,在viewController类(这是一个UIViewController)中,数组搞砸了。
-(void)loadLocations:(NSMutableArray*)_array{
NSLog(@"%f", [[_array objectAtIndex:0] lat]); // This sould be 42.000 but it is 0.00000 and all of the other indexes
答案 0 :(得分:2)
你从一开始就遇到麻烦:
NSMutableArray *array = [[array initWithObjects:nil] retain];
你在“数组”上调用“initWithObjects”,但你还没有分配“数组”。
你想要这样的东西:
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:nil];
或只是:
NSMutableArray *array = [[NSMutableArray alloc] init];
答案 1 :(得分:1)
这部分无效:
NSMutableArray *array = [[array initWithObjects:nil] retain];
array = [xml loadXML:@"info.xml"];
第一行未使用,因为第二行是将数组指针设置为[xml loadXML:]的结果
我认为这应该足够了:
NSMutableArray *array = [[NSMutableArray alloc] initWithArray:[xml loadXML:@"info.xml"]];