gpt4 book ai didi

ios - Objective-C 下载 PLIST 并在表中使用

转载 作者:行者123 更新时间:2023-11-28 20:13:44 24 4
gpt4 key购买 nike

我是 Objective-C 编程的新手。我正在尝试构建一个供个人使用的应用程序,以查看包含在我的网络服务器上的事件信息。我希望每个事件标题字符串在我的 UITableView 中显示为单独的行。

我正在使用 CFPropertyList从 MySQL 创建 plist。这是我的 plist 的样子: enter image description here

我正在这样下载 plist:

NSString *stringURL = @"http://www.example.com/events.plist";
NSURL *url = [NSURL URLWithString:stringURL];
NSData *urlData = [NSData dataWithContentsOfURL:url];
if ( urlData )
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"events.plist"];
[urlData writeToFile:filePath atomically:YES];
}

然后这就是我尝试将信息加载到他们的数组中的方式:

    events = [[NSDictionary alloc] initWithContentsOfFile:filePath];

ID = [events objectForKey:@"Event ID"];
title = [events objectForKey:@"Event Title"];
date = [events objectForKey:@"Event Date"];
price = [events objectForKey:@"Price"];
totalTickets = [events objectForKey:@"Total Tickets"];
ticketsSold = [events objectForKey:@"Tickets Sold"];
ticketsRemaining = [events objectForKey:@"Tickets Remaining"];
postStatus = [events objectForKey:@"Post Status"];
postContent = [events objectForKey:@"Post Content"];

现在我遇到了麻烦。现在,当我调试“事件”字典的行数时,它返回 0。

因此我无法设置“numberOfRowsInSection”。 [title objectAtIndex:indexPath.row] 也不起作用。

我认为问题在于我如何设置 NSDictionary,但由于我缺乏 Objective-C 和数组知识,我无法解决这个问题。

最佳答案

这是你的问题:

events = [[NSDictionary alloc] initWithContentsOfFile:filePath];

您的 plist 是一个字典数组,您正在尝试将该数组作为字典加载。试试这个:

events = [NSArray arrayWithContentsOfFile:filePath];

编辑:要将标题提取到数组中以便您可以在表格单元格中使用它们,请执行以下操作:

NSMutableArray *titles = [NSMutableArray array];
for (NSDictionary *event in events) {
NSString *title = [event objectForKey:@"Event Title"];
[titles addObject:title];
}

关于ios - Objective-C 下载 PLIST 并在表中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18988660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com