1

一直在慢慢学习 IOS 编程的基础知识,但似乎遇到了一个小障碍

我有一个从位于网络服务器上的 plist 填充的表

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Item 0</key>
<dict>
    <key>eventDate</key>
    <string>27-06-2012</string>
    <key>eventTitle</key>
    <string>Clinic</string>
</dict>
<key>Item 1</key>
<dict>
    <key>eventDate</key>
    <string>28-06-2012</string>
    <key>eventTitle</key>
    <string>Clinic</string>
</dict>
<key>Item 2</key>
<dict>
    <key>eventDate</key>
    <string>28-06-2012</string>
    <key>eventTitle</key>
    <string>Office Closed</string>
</dict>
<key>Item 3</key>
<dict>
    <key>eventDate</key>
    <string>29-06-2012</string>
    <key>eventTitle</key>
    <string>Tour</string>
</dict>
</dict>
</plist>

现在,在进行了大量阅读之后,我设法将这段代码组合在一起以填充表格。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
{
UITableViewCell * cell =[tableView dequeueReusableCellWithIdentifier:@"cell"];

if (nil == cell)
{
    cell = [[UITableViewCell alloc]
            initWithStyle:UITableViewCellStyleSubtitle
            reuseIdentifier:@"cell"];
}

NSString *currentEventName;
currentEventName = [eventKey_web objectAtIndex:indexPath.row];
[[cell textLabel] setText:currentEventName];

return cell;
}

...

- (void)viewDidLoad
{
[super viewDidLoad];

NSURL * myURL1;

myURL1 = [NSURL URLWithString:@"http://www.mywebsite.com/events.plist"];

event_web = [[NSDictionary alloc] initWithContentsOfURL:myURL1];
eventKey_web = [event_web allKeys];
}

现在我的表正在填充,但只有第 0 项、第 1 项、第 2 项

我的目标是用 eventTitle 作为描述来填充表格。

抱歉这个可能很愚蠢的问题,但仍然试图让我的头脑围绕目标 C

4

2 回答 2

0

eventKey_web = [event_web allKeys];从您的 plist 中获取所有键,您需要为该键添加值..

所以不要使用这个:

currentEventName = [eventKey_web objectAtIndex:indexPath.row];

你可以使用类似的东西:

NSMutableDictionary *r = [[event_web objectAtIndex:indexPath.row] objectForKey:[eventKey_web objectAtIndex:indexPath.row] ];
event_web = [r objectForKey:@"eventTitle"]`
于 2012-06-25T11:08:03.230 回答
0

您必须通过函数中的键获取 NSDictionary,并从字典中检索相应的数据。

NSString *currentEventName = [eventKey_web objectAtIndex:indexPath.row];  // This is only the key from your root dict
NSDictionary *currentEventDict = [event_web objectForKey:currentEventName];
NSString *currentEventDate = [currentEventDict objectForKey:@"eventDate"];
NSString *currentEventTitle = [currentEventDict objectForKey:@"eventTitle"];

//  Here do what you need to show
...
...
于 2012-06-25T11:08:17.277 回答