後陣列爲空每當我調用另一個類中的方法-(void)setArrayCheckOut:(int)num
時,數組arrayCheckout
爲空。在-(void)setArrayCheckOut:(int)num
之後調用-(IBAction)reloadTable:(id)sender
「導致重載表 - (null),0」。調用方法
任何想法出了什麼問題?
這麼久
@implementation CheckOut
-(id)init
{
[super init];
tableCheckOut = [[NSTableView alloc]init];
if (!arrayCheckOut)
{
arrayCheckOut = [[NSMutableArray alloc]init];
[arrayCheckOut addObject:@"-"];
}
return self;
}
-(void)setArrayCheckOut:(int)num
{
switch (num) {
case 170:
[arrayCheckOut addObject:@"T20, T20, DB"];
break;
default:
[arrayCheckOut addObject:@"-"];
break;
}
NSLog(@"array = %@",[arrayCheckOut objectAtIndex:0]);
[tableCheckOut reloadData];
}
-(IBAction)reloadTable:(id)sender
{
NSLog(@"reload table - %@, %d",[arrayCheckOut objectAtIndex:0],[arrayCheckOut count]);
[tableCheckOut reloadData];
}
- (int)numberOfRowsInTableView:(NSTableView *)tv
{
return [arrayCheckOut count];
}
- (id)tableView:(NSTableView *)tv
objectValueForTableColumn:(NSTableColumn *)tColumn
row:(int)row
{
NSString *v = [arrayCheckOut objectAtIndex:row];
return v;
}
@end
arrayCheckOut在哪裏定義?顯示代碼。 – 2010-10-02 23:23:48
沒有,因爲我不需要它。該數組將只能被應用程序讀取並完全刪除,然後再填充它。 – lueda 2010-10-02 23:29:44
'setArrayCheckOut:'的問題包括一個幻數(170),魔術和非本地化的字符串文字,使用'int',其中'NSInteger'或'NSUInteger'可能更合適(在您的數據源方法中也是一個問題) ,以及該方法的非描述性名稱。我建議爲數字和字符串定義常量,使用'NSLocalizedString'定位字符串(因爲它們似乎用於顯示給用戶),切換到'NSInteger'或'NSUInteger',並將'setArrayCheckOut:'重命名爲更清楚地說明了方法的目標,而不僅僅是它的實現。 – 2010-10-02 23:48:58