程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> ios-從應用delegate訪問數組

ios-從應用delegate訪問數組

編輯:編程綜合問答
從應用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中訪問數組?

最佳回答:


使用如下代碼會得到全局共享的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這裡呢...

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved