原型单元使用plist中的日期时自动释放时出错?

时间:2013-09-08 07:21:21

标签: ios plist autorelease

当我使用自定义单元格填充我的tableview时,它只使用了plist中的STRING我没有问题。但是当我尝试填充

cell.detailTextLabel.text = [partyTime objectAtIndex:indexPath.row];
plist中的partyTime被设置为“日期”格式。它会崩溃。如果我将日期更改为“字符串”并没有问题。 如果我把它留作日期,我会在Main.m autoreleasepool

中收到错误
@autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([BaliPartyAppDelegate class]));
    }

我需要发布NSDate吗?和图像?如何?

到目前为止这是我的代码

 NSArray *parties;
    NSArray *searchResults;
    NSArray *tableData;
    NSArray *thumbnails;
    NSArray *partyTime;
}
@synthesize tableView;

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Initialize table data
   // parties = [NSArray arrayWithObjects:@"Snoop Dog", @"AVICII", @"Frenzal Rhomb", @"Someone else", @"Cool Band", @"Lady Boys",  nil];
    // Find out the path of recipes.plist
    NSString *path = [[NSBundle mainBundle] pathForResource:@"parties" ofType:@"plist"];

    // Load the file content and read the data into arrays
    NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
    parties = [dict objectForKey:@"PartyName"];
    thumbnails = [dict objectForKey:@"Thumbnail"];
    partyTime = [dict objectForKey:@"PartyTime"];
}


- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (tableView == self.searchDisplayController.searchResultsTableView) {
        return [searchResults count];

    } else {
        return [parties count];

    }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"PartyCell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
   }

   if (tableView == self.searchDisplayController.searchResultsTableView) {
        cell.textLabel.text = [searchResults objectAtIndex:indexPath.row];
   } else {
       cell.textLabel.text = [parties objectAtIndex:indexPath.row];
       cell.detailTextLabel.text = [partyTime objectAtIndex:indexPath.row];
       //cell.imageView.image = [thumbnails objectAtIndex:indexPath.row];



    }

    return cell;
}

1 个答案:

答案 0 :(得分:0)

假设您正在使用ARC(因为我在您的代码段中没有看到任何其他对“release”的调用),请不要担心发布任何内容。您看到的崩溃与您分配给单元格标签“.text”属性的内容有关。 The ".text" property of a UILabel can only take a NSString object

如果你传递一个NSDate对象,它不知道如何处理它,因此崩溃。