我对 Objective-C 编程相当陌生。我正在尝试构建一个供个人使用的应用程序来查看包含在我的网络服务器上的事件信息。我希望每个事件标题字符串在我的 UITableView 中显示为单独的行。
我正在使用CFPropertyList从 MySQL 创建 plist。这是我的 plist 的样子:
我正在像这样下载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 和数组知识,我无法克服这个问题。