Comment puis-je utiliser un NSMutableArray comme source de données pour mon UITableView
J'ai un NSMutableArray avec les données (codé en dur).
J'ai mis en place ces deux TableView méthodes et IB, j'ai mis le délégué et la source de données
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [myArray count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];
if (!cell) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"UITableViewCell"] autorelease];
}
cell.textLabel.text = [myArray objectAtIndex:[indexPath row]];
NSLog(@"Cell is %@", [myArray objectAtIndex:indexPath.row]);
return cell;
}
Les données n'apparaissent pas dans le TableView. J'ai couru NSLog et je peux voir que les données sont dans myArray.
J'ai ajouté le NSLog le code et il semble que le code ne s'exécute jamais. La question est de savoir comment est mon tableau en cours de création?
Voici le code
- (id)init:(NSMutableArray *)theArray
{
[super init];
countryTable.delegate = self;
countryTable.dataSource = self;
UITapGestureRecognizer * tapRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(viewTapped:)] autorelease];
[window addGestureRecognizer:tapRecognizer];
myArray = [[NSMutableArray alloc] init];
myArray = theArray;
return self;
}
comment êtes-vous de la création de la
NSMutableArray
?
OriginalL'auteur Cocoa Dev | 2011-02-08
Vous devez vous connecter pour publier un commentaire.
Votre code de base est correct, juste besoin d'avoir un tableau (dont vous n'avez pas fourni ici), alors ce serait un exemple:
Et vous pouvez
NSLog
ce:NSLog(@"Count: %i, Array: %@",[myArray count], myArray);
De sortie: Qui devrait revenir comme le
cell.textLabel.text
par votre exempleVous devez également vous assurer que vous avez défini le
UITableViewDelegate
etUITableViewDataSource
protocoles dans votre en-tête.OriginalL'auteur WrightsCS
Je ne sais pas si la question est encore ouvert, mais je lui donner un essai.
Que j'ai lu ton code je ne vois pas où countryTable est instancié donc je suppose qu'il est connecté en InterfaceBuilder? Et si c'est le cas, countryTable n'est valable qu'après viewDidLoad.
Mais vous pourriez déléguer et de la source de données dans InterfaceBuilder.
Par la façon dont, à chaque fois que vous modifiez la source de données (myArray), appel countryTable.reloadData.
OriginalL'auteur easyDeal
Essayer ce -
J'ai essayé de le retenir et même problème. Je vais poster mon code mis à jour ci-dessus
OriginalL'auteur Mahesh