l'application iOS (cette classe n'est pas la valeur de la clé de codage conforme pour la touche de source de données)
Je suis en train de faire une application iPhone, et je suis en train de travailler à ce TableViewController, mais lors des tests, j'obtiens cette erreur, et je ne sais pas vraiment quoi faire avec elle:
2012-01-13 13:45:32.947 HandHistory Reviews[3422:707] ***
Terminating app due to uncaught exception 'NSUnknownKeyException',
reason: '[<SessionsTableViewController 0x191cb0> setValue:forUndefinedKey:]:
this class is not key value coding-compliant for the key dataSource.'
Quelqu'un a une idée?
C'est mon SessionTableViewController.m fichier:
#import "SessionsTableViewController.h"
#import "Session.h"
@interface SessionsTableViewController()
@property (nonatomic, copy) NSArray *sessions;
@end
@implementation SessionsTableViewController
@synthesize sessions = _sessions;
#pragma mark - View lifecycle
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
NSMutableArray *sessions = [[NSMutableArray alloc] init];
//Looking for files
//Finding the Documents directory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [paths objectAtIndex:0];
NSArray *directoryContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
//Looping through each file in the directory
for (NSString *file in directoryContent)
{
NSString *contents = [NSString stringWithContentsOfFile:[[paths objectAtIndex:0] stringByAppendingPathComponent:file] encoding:NSUTF8StringEncoding error:nil];
Session *session = [[Session alloc] initWithName:file andContents:contents];
[sessions addObject:session];
}
self.sessions = sessions;
}
#pragma mark - Table view data source
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.sessions count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Session Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
//cell.textLabel.text = [[self.sessions objectAtIndex:indexPath.row] name];
//cell.detailTextLabel.text = [[NSString alloc] initWithFormat:@"%d hands", 10];
return cell;
}
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//Navigation logic may go here. Create and push another view controller.
/*
<#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil];
//...
//Pass the selected object to the new view controller.
[self.navigationController pushViewController:detailViewController animated:YES];
*/
}
@end
découvrez NSLog la première session
OriginalL'auteur Sander Declerck | 2012-01-13
Vous devez vous connecter pour publier un commentaire.
Il semble que vous avez câblé choses dans interface builder de manière incorrecte. Il semble que vous avez attaché à quelque chose pour une prise appelée
dataSource
dans votreSessionsTableViewController
. On dirait que vous avez probablement envie de le faire dans l'autre sens je suppose que vous avez une vue de table enSessionsTableViewController
.Donc, vous avez besoin de joindre le
dataSource
propriété de votre table en vue de votre instance deSessionsTableViewController
(probablement "Propriétaire du Fichier" dans votre cas), plutôt que l'inverse.OriginalL'auteur mattjgalloway
Assurez-vous que vous n'avez pas spécifié de la mauvaise application dans la case du Module (un peu moins Classe). C'est dans l'Identité de l'Inspecteur dans l'INTERFACE Builder.
Vous ne devriez normalement pas avoir rien de spécifié en tant que Module, la valeur par défaut est un grisé entrée intitulée "actuel....", ce qui signifie que son disponible dans toutes les applications. Mais, si vous avez spécifié une application ici, l'élément de l'UI ne sont pas disponibles pour toutes les autres applications de votre projet, en vous donnant le sujet, message d'erreur lorsque vous essayez d'exécuter d'autres applications.
Qui était mon problème...
Je ne'n savoir comment je peut le remanier. Si vous avez quelque chose que spécifié dans le Module, vous recevrez le message d'erreur de l'OP spécifié lorsque vous essayez de créer un autre module.
OriginalL'auteur music_and_cities