2009-10-08 1 views
0

это часть моего кода. Мое приложение падает, когда я пытаюсь загрузить представление, включая uitableview. Я думаю, что есть проблема с таблицей, которую я пытаюсь использовать, но не могу ее найти. помощь пожалуйстаiphone sdk - UITableView - не может назначить таблицу в виде таблицы

gameTimingTable=[NSArray arrayWithObjects:@"2min + 10sec/coup",@"1min + 15sec/coup",@"5min",nil]; 

объявлен в .h, как NSArray *gameTimingTable; это код, я использую, чтобы назначить таблицу в UITableView

- (void)viewDidLoad { 

gameTimingTable=[NSArray arrayWithObjects:@"2min + 10sec/coup",@"1min + 15sec/coup",@"5min",nil]; 



} 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    // There is only one section. 
    return 1; 
} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    // Return the number of time zone names. 
    return [gameTimingTable count]; 
} 


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    static NSString *MyIdentifier = @"MyIdentifier"; 

    // Try to retrieve from the table view a now-unused cell with the given identifier. 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 

    // If no cell is available, create a new one using the given identifier. 
    if (cell == nil) { 
     // Use the default cell style. 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:MyIdentifier] autorelease]; 
    } 

    // Set up the cell. 
    NSString *cadence = [gameTimingTable objectAtIndex:indexPath.row]; 
    cell.textLabel.text = cadence; 

    return cell; 
} 

/* 
To conform to Human Interface Guildelines, since selecting a row would have no effect (such as navigation), make sure that rows cannot be selected. 
*/ 
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    return nil; 
} 

большое спасибо

+0

какие-либо идеи ?? ....................... thanxx – kossibox

ответ

0

Проблема здесь может быть одним (или обоими) двух вещей:

1 ... Вы возвращаете ноль из метода willSelectRowAtIndexPath д. Если вы не хотите, чтобы пользователь мог нажимать на ячейки, просто не переопределяйте этот метод, т. Е. Не трогайте его вообще. Наряду с этим, в методе cellForRowAtIndexPath вы можете сделать:

cell.selectionStyle = UITableViewCellSelectionStyleNone; 

, чтобы убедиться, что клетка даже не подчеркнуть, когда пользователь вводит его.

2 ... То, как вы инициализировали массив gameTimingTable, означает, что он автореализован после того, как вы его создали, чтобы он не мог быть доступен в другом месте кода. Отформатируйте ее, используя один из следующих методов вместо:

gameTimingTable=[[NSArray arrayWithObjects:@"2min + 10sec/coup",@"1min + 15sec/coup",@"5min",nil] retain]; 

// OR ... 

gameTimingTable=[[NSArray alloc] initWithObjects:@"2min + 10sec/coup",@"1min + 15sec/coup",@"5min",nil]; 

... но помните, чтобы освободить массив в методе dealloc:

- (void)dealloc { 
[gameTimingTable release]; 
[super dealloc]; 

}