iphone - 如何对从 XML 解析的对象进行排序

标签 iphone objective-c xml parsing ios

所以我想解析一个 xml 并根据“类(class)”按升序显示(在 UITableView 中)“主题”

XML:

<parfumeo_kkn>
<tt_timetable>
    <id>1015</id>
    <day>1</day>
    <class_id>98</class_id>
    <lesson>9</lesson>
    <teacher>bt</teacher>
    <room>V1.2</room>
    <subject>M</subject>
    <pr_id>54</pr_id>
</tt_timetable>
<tt_timetable>
    <id>1014</id>
    <day>1</day>
    <class_id>98</class_id>
    <lesson>8</lesson>
    <teacher>bt</teacher>
    <room>V1.2</room>
    <subject>bg</subject>
    <pr_id>54</pr_id>
</tt_timetable>

等等。

(在这个小例子中,“M”之前会有“bg”。)我已经设置了我的解析器,但它没有按照我想要的顺序工作。 感谢帮助

最佳答案

您应该将解析器的逻辑与如何在 TableView 中显示结果分开。解析器只是完成解析 xml 的任务, TableView 的 Controller 将通过使用 NSSortDescriptor 对解析器的结果进行排序来执行一些额外的任务,示例如下:

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"lesson" ascending:YES];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

    [fetchRequest setSortDescriptors:sortDescriptors];

是的,之前我假设你正在使用 Core Data,如果你只有一个普通数组,那么你可以简单地调用:

    NSArray *myArray = [xmlResultArray sortedArrayUsingDescriptors:sortDescriptors];

现在您可以使用 myArray 来填充您的 TableView Controller 。

希望这对您有所帮助!

关于iphone - 如何对从 XML 解析的对象进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3941009/

相关文章:

iphone - OCMock 测试失败 - 未调用预期的方法

iphone - iOS 应用程序为调用添加前缀

iphone - 在 iPhone 中实现图表

iphone - 在 xcode 中构建并运行禁用

java - 由于 HTML 中存在 '&' 字符,使用 SAX 解析失败

java - 我尝试在模拟器中运行该应用程序,但它没有显示第一个 Activity 。它只是打开并显示白屏

iphone - 为什么UIWebView在URL中出现&字符的问题(想要&)

ios - Xcode 8.3 中奇怪的 Clang 行为

iphone - 添加为 subview 时 UITextField 不显示

ruby-on-rails - Rails to_xml 将选项添加到根节点