我有一个应用程序,它具有基于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传递到我的应用程序中的其他类?
任何建议都将不胜感激,谢谢!
答案 0 :(得分:1)
您正在创建ListViewController
的新实例,该实例不是您在视图控制器层次结构中使用的实例。相反,您需要获取对已发起的ListViewController
的引用。
根据您使用的UI结构和导航,它将是您的rootViewController或其任何子视图控制器。
或者,您可以使用通知在数据模型发生变化时通知您ListViewController
。