2015-09-20 59 views
0

tableView我有幾個對象顯示出來很好。但是,當我與列表交互並向下滾動(向前)時,應用程序將崩潰。我從來沒有見過這個,並沒有意識到爲什麼會發生這種情況。我將第三方日曆與我的代碼結合使用,我想我應該提到這一點,但我不認爲這是主要問題。[__NSArrayI objectAtIndex:]:發送到釋放實例的消息0x7fbdae1a2080

#import "VRGViewController.h" 


@interface VRGViewController() 

@end 

@implementation VRGViewController{ 
    NSArray *calendarTableData; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    VRGCalendarView *calendar = [[VRGCalendarView alloc] init]; 
    calendar.delegate=self; 
    calendar.center = self.view.center; 
    [self.view addSubview:calendar]; 

    calendarTableData = [NSArray arrayWithObjects:@"Egg Benedict", @"Mushroom Risotto",nil]; 

} 



-(void)calendarView:(VRGCalendarView *)calendarView switchedToMonth:(int)month targetHeight:(float)targetHeight animated:(BOOL)animated { 
if (month==[[NSDate date] month]) { 
    NSArray *dates = [NSArray arrayWithObjects:[NSNumber numberWithInt:1],[NSNumber numberWithInt:5], nil]; 
    [calendarView markDates:dates]; 
} 
} 

-(void)calendarView:(VRGCalendarView *)calendarView dateSelected:(NSDate *)date { 
NSLog(@"Selected date = %@",date); 
} 


#pragma mark - User Defined Methods 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ 
return [calendarTableData count]; 
} 


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
static NSString *simpleTableIdentifier = @"Services"; 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 
if (cell == nil) { 
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier]; 
} 
cell.textLabel.text = [calendarTableData objectAtIndex:indexPath.row]; 

return cell; 
} 


@end 

Debugging with Zombies in Instruments

回答

1

您必須聲明你的數據源的方式如下:

calendarTableData = [[NSArray alloc]initWithObjects:@"Egg Benedict", 
                @"Mushroom Risotto",nil]; 
+0

非常感謝!工作@meda –

1

問題來自何處,我如何打電話給我的陣列。

由於我使用的是第三方代碼,我禁用了ARC。這是我如何調用我的對象數組導致我的問題。感謝@meda幫助爲我提供答案 - 在實施之後,我意識到自己在哪裏錯了

+2

Arc可以在逐個文件的基礎上禁用,不需要爲整個項目禁用它。此外,您在問題中沒有提到 - 不良OP。 – zaph

+0

謝謝@ zaph,我應該更具體。是的,我通過'Build Phases' - >'Compile Source' - >選擇了文件並添加了'-fno-objc-arc',爲我的項目中的第三方代碼禁用了ARC。 –

相關問題