开发者社区> 问答> 正文

从应用delegate访问数组

在delegate中声明了一个数组:
@property(strong,nonatomic)NSMutableArray *books;

然后在XMLParser.m中给这个数组添加对象:

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName 
  namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {

    if([elementName isEqualToString:@"Books"])
        return;
    NSLog(@"i m in didEndElement");

    if([elementName isEqualToString:@"Book"]) {
        [appDelegate.books addObject:aBook]; //here i have added objects to array

        [aBook release];
        aBook = nil;

        NSLog(@"books=%@",appDelegate.books);
    }
    else 
        [aBook setValue:currentElementValue forKey:elementName];

    [currentElementValue release];
    currentElementValue = nil;
}


在XMLParser.h中声明数组:
@interface XMLParser : NSObject {
    NSMutableString *currentElementValue;

    AppDelegate *appDelegate;
    Book *aBook; 
}

现在需要访问在BooksDetailViewController.m中的数组,怎么实现?如何从应用delegate中访问数组?

展开
收起
爵霸 2016-03-26 09:46:48 1853 0
1 条回答
写回答
取消 提交回答
  • 使用如下代码会得到全局共享的AppDelegate
    [[UIApplication sharedApplication] delegate]

    你在向这个array里添加object的时候应该这么写

    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    [appDelegate.books addObject:aBook];

    BooksDetailViewController.m中读取时这么写

    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    id book = [appDelegate.books objectAtIndex:0];

    但是我想问一下,你怎么把bookArray放到appDelegate这里呢...

    2019-07-17 19:15:23
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载