9
votes

L'application iOS (cette classe n'est pas conforme à la valeur de la valeur clé pour la clé de données de la clé)

Je fais une application iPhone et je travaille dans cette tableViewController, mais lorsque vous testez, je reçois cette erreur, et je ne sais pas vraiment quoi faire avec cela: xxx pré>

Quelqu'un a eu une idée? p>

Ceci est mon fichierTableViewController.m Fichier: P>

#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


1 commentaires

Découvrez NSLOG la session d'abord


3 Réponses :


17
votes

On dirait que vous avez mal câblé dans le constructeur d'interface incorrectement. Il semble que vous ayez joint quelque chose à un point de vente appelé datasource dans votre sessionStableViewController . On dirait que vous vouliez probablement le faire à l'inverse, car je suppose que vous avez une vue de table dans sessionStableViewController .

Ainsi, vous devez joindre la propriété DataSource de la vue de votre table à votre instance de SessionStableViewController (probablement "propriétaire du fichier" dans votre cas), plutôt que l'autre chemin autour.


1 commentaires

Je vois, j'ai défini mon séanceStableViewController comme classe personnalisée pour ma tableView au lieu de ma tableViewController, merci, c'est ce que je cherchais, tout fonctionne maintenant.



0
votes

Vérifiez que vous n'avez pas spécifié la mauvaise application dans le module marqué de la case (juste en classe). Ceci est dans l'inspecteur d'identité du constructeur d'interface utilisateur.

Vous ne devriez normalement pas avoir quelque chose de spécifié en tant que module, car il est par défaut à une entrée de sortie grisée «Actuelle ...», ce qui signifie sa disponible dans toutes les applications. Mais si vous avez spécifié une application ici, l'élément d'interface utilisateur ne sera disponible sur aucune autre application de votre projet, ce qui vous donne le message d'erreur sujet lorsque vous essayez d'exécuter d'autres applications.

C'était mon problème ...


2 commentaires

Si ce commentaire répond à la question, il n'est pas immédiatement de préciser comment. Envisager de reformuler?


Je ne sais pas comment j'avais d'autre chose que je peux le communiquer. Si vous avez quelque chose de spécifié dans le module, vous obtiendrez l'erreur de l'OP spécifiée lorsque vous essayez de créer un autre module.



1
votes

Cette erreur se produit généralement lorsque les points de vente ne sont pas connectés correctement. Dans ma vérification de cas, la connexion ne le résoudrait toujours.


0 commentaires