使用appDelegate填充其他类的数组

时间:2014-06-08 14:25:24

标签: ios objective-c

我有一个应用程序,它具有基于XML结构的数据库。 XML非常大,我想要的是,从一开始就解析它,然后填充在其他类中声明的数组。这就是我尝试这样做的方法 - 当解析结束时,方法 - (void)dataFromXMLdidFinishExtractingToArray:(NSMutableArray*)array:通过协议调用,然后我想填充一个数组。请查看我在appDelegate中声明的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    dataManager *dataMgr =[[dataManager alloc]initWithDelegate:self];
    [dataMgr loadInternalData];
    return YES;
}

-(void)dataFromXMLdidFinishExtractingToArray:(NSMutableArray*)array{

    ListViewController *listController = [[ListViewController alloc]init];
    listController.listOfPlaceDetails = array;
    NSLog(@"%@ NAMES", array);
    NSLog(@"delegate Called");

}

首先,我使用我的dataManager类进行解析,当它完成时,尝试填充数组中的数据。解析很好,我可以在控制台中看到一切。但是,当我加载我的listViewController类时,array - self.listOfPlaceDetails为空。如何将值从appDelegate传递到我的应用程序中的其他类?

任何建议都将不胜感激,谢谢!

1 个答案:

答案 0 :(得分:1)

您正在创建ListViewController的新实例,该实例不是您在视图控制器层次结构中使用的实例。相反,您需要获取对已发起的ListViewController的引用。

根据您使用的UI结构和导航,它将是您的rootViewController或其任何子视图控制器。

或者,您可以使用通知在数据模型发生变化时通知您ListViewController