yue1liang1chuan 2013-01-11 06:14 采纳率: 0%
浏览 2402
已采纳

从应用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中访问数组?

  • 写回答

1条回答 默认 最新

  • Matt 2013-01-11 23:32
    关注

    使用如下代码会得到全局共享的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这里呢...

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料