iphone - 如何将数组数据传递给另一个方法

标签 iphone ios uitableview nsxmlparser

我目前正在连接到一个数据库,然后获取一堆我用 NSXMLParser 解析的 xml(如下所示)完成后,我想将数组数据传递给另一个方法来对其进行排序,然后分离数组分成几个部分(这样我的 uitableview 索引就可以工作了)。并最终显示在我的表格 View 中。

我的主要问题是如何(在代码中的什么位置)将我的数据数组传递给我创建的方法。

#pragma mark - Parsing lifecycle

- (void)startTheParsingProcess:(NSData *)parserData
{
    [myDataArray release]; // clears array for next time it is used.
    myDataArray = [[NSMutableArray alloc] init]; //initalizes the array, this is a must have!!!! :)

    NSXMLParser *parser = [[NSXMLParser alloc] initWithData:parserData]; //incoming parserDatapassed to NSXMLParser delegate which starts parsing process 

    [parser setDelegate:self];
    [parser parse]; //Starts the event-driven parsing operation.
    [parser release];

    //[self.tableView reloadData]; // this reloads the data in the tabel view once the nsmutablearray has been filled with values
}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict
{
    if ([elementName isEqual:@"item"]) {
        // NSLog(@"Found title!");
        itemString = [[NSMutableString alloc] init];
    }
}

- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string
{
    [itemString appendString:string];
}

- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName
{
    if ([elementName isEqual:@"item"]) {
        //NSLog(@"ended title: %@", itemString);
        [myDataArray addObject:itemString]; //this is where i pass the values over to my array.

        //TODO: Test release on memory consumption etc
        [itemString release];
        itemString = nil;
    }
}

//method to sort array and split for use with uitableview Index
- (IBAction)startSortingTheArray:(NSMutableArray *)arrayData
{

}

最佳答案

为您的 NSXMLParser 实现 didEndDocument 委托(delegate)方法, 如果您的 - (IBAction)startSortingTheArray:(NSMutableArray *)arrayData 返回类型是非 IBAction,可以说它的返回类型是 void 以下应该可以正常工作。我不知道将 arrayData 传递给 IBAction 返回类型方法时会发生什么。

- (void)parserDidEndDocument:(NSXMLParser *)parser
{
   [self startSortingTheArray:myDataArray];
}

关于iphone - 如何将数组数据传递给另一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7439181/

相关文章:

ios - 如何通过这个错误来调试我的代码登录IOS

ios - 快速重新加载数据后未调用 cellforrowatindexpath

ios - uitableviewcell 高度和框架大小?

ios - 试图使 UITableViewCell 的标签宽度受限但高度不受限制

ios - iPhone 仅在 iPhone 6 及更高版本中重启

ios - 如何以编程方式设置 UILabel 位置 iOS 7

iphone - 如何从 iOS 应用程序将视频上​​传到 YouTube?

objective-c - 扩展协议(protocol)以扩展 NSURLConnection 的委托(delegate)方法

iphone - shouldChangeCharactersInRange 一次只取一位数字

iphone - 如果 Apple 在 iPhone 应用程序中检测到隐藏的 API 使用会发生什么?