2011-03-10 91 views
0

路過的NSMutableArray我正在做一個iPhone aplication和委託類叫我從另一個類的方法,它返回充滿信息的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 

回答

2

你有麻煩了從一開始就:

NSMutableArray *array = [[array initWithObjects:nil] retain]; 

你打電話的「陣列」,「initWithObjects」,但是你有沒有分配的「陣」呢。

你想要的東西,如:

NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:nil]; 

或者只是:

NSMutableArray *array = [[NSMutableArray alloc] init]; 
+0

哦,是啊錯在那裏,但它並沒有解決問題。 – marcg11 2011-03-10 19:12:46

+0

甚至更​​簡單''[NSMutableArray new]' – justin 2011-03-10 19:18:14

1

這部分是無效的:

NSMutableArray *array = [[array initWithObjects:nil] retain]; 
array = [xml loadXML:@"info.xml"]; 

不使用第一行,因爲第二行是設置數組指針[xml loadXML:]的結果

我認爲這應該足夠了:

NSMutableArray *array = [[NSMutableArray alloc] initWithArray:[xml loadXML:@"info.xml"]];