我在向下滾動UITableView時遇到了iPhone應用崩潰的問題。我將NSZombieEnabled設置爲YES,並發現我用來填充表格的NSArray以某種方式得到處理。NSArray早期發佈
#import "RootViewController.h"
@implementation RootViewController
@synthesize flashsets;
- (void)viewDidLoad
{
//Unrelated code removed from this post
NSString *listofsetsstring = [[NSString alloc]
initWithContentsOfFile:pathtosetsdata
encoding:NSUnicodeStringEncoding
error:&error];
flashsets = [listofsetsstring componentsSeparatedByString:@"\n"];
[super viewDidLoad];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [flashsets count];
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
// Configure the cell.
NSLog(@"IndexPath.row = %i", indexPath.row);
cell.textLabel.text = [flashsets objectAtIndex:indexPath.row]; <<<< CRASH HERE!!
return cell;
}
@end
我在粗體行收到message sent to deallocated instance 0x4ebae20
。在我的.h中,我使用了@property (nonatomic, retain) NSArray *flashsets;
,我認爲保留部分應該避免釋放。
我該如何避免這樣做?
謝謝!我將不得不記住將來使用[self variablename]。 – Cole