2013-07-09 13 views
11

Ho una classe di connessione nel mio progetto. Voglio usare questa lezione per molti lavori. Quando ho provato a chiamare la funzione di questa classe ottenendo seguente errore: No @interface visibile dichiara l'errore di selezioneNessun @interface visibile dichiara l'errore del selettore

coreConnection.h

@interface coreConnection:NSArray 
{ 
    NSData *returnData; 
} 
     -(NSArray*)getData; 
@end 

coreConnection.m

#import "coreConnection.h" 

@implementation coreConnection 

-(NSArray*)getData:(NSString*)link 
{ 
    NSOperationQueue *apiCallsQueue = [[NSOperationQueue alloc] init]; 
    NSURL *URL = [NSURL URLWithString:link]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:URL]; 
    [NSURLConnection sendAsynchronousRequest:request queue:apiCallsQueue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      returnData = data; 
     }); 
    }]; 
    return [NSJSONSerialization JSONObjectWithData:returnData options:nil error:nil]; 
} 
@end 

viewController.m

#import "coreConnection.h" 

- (void)viewDidLoad 
{ 
    [[self headlineCollectionView]setDelegate:self]; 
    [[self headlineCollectionView]setDataSource:self]; 
    [self.headlineCollectionView registerNib:[UINib nibWithNibName:@"HeadLineCell" bundle:nil] forCellWithReuseIdentifier:@"CELL"]; 
    coreConnection speed=[[coreConnection alloc] init];; 
    headline = [speed getData:@"string"]; 
    [self.headlineCollectionView reloadData]; 
[super viewDidLoad]; 
} 
+2

Ti darò un suggerimento. Guarda come l'hai dichiarato nel file .h rispetto al file .m – borrrden

+12

A tutti: ecco un altro grande esempio per aiutare a chiedere alle persone con voti bassi senza commenti. Ottimo lavoro! Alcuni commenti di aiuto sarebbero molto utili anche se l'argomento è troppo facile per i votanti. Nessuno è nato come programmatore completamente sviluppato. +1 per avere il coraggio di fare una domanda in un calibro di leoni. – JFS

+1

Non hai problemi con il tuo metodo getData? si esegue una richiesta asincrona in cui si aggiorna 'returnData' ma si restituisce il suo valore dal gestore di completamento ... Inoltre, penso che non sia necessario utilizzare dispatch_async in una richiesta asincrona. – zbMax

risposta

11

Hehe il problema è piuttosto semplice il tuo me ThOD nell'attuazione e utilizzato in codice è

-(NSArray*)getData:(NSString*)link 

non

-(NSArray*)getData; 

che è dichiarato nel file h quindi rilasciare la dichiarazione come

-(NSArray*)getData:(NSString*)link; 

nel file h

MODIFICA

È anche perdere * nel allocing l'oggetto

Usa

coreConnection *speed=[[coreConnection alloc] init];; 
+0

Darn, speravo che il mio commento avrebbe reso OP possibile rendersene conto da solo><. Questa è la risposta corretta però. Anche Maulik. – borrrden

+1

hehe ho aspettato più di 5 minuti per rispondere vedendo il tuo commento, ma nessuno lo ha capito: D lol –

+0

@ LithuT.V. Dopo aver discusso con i commenti di ** Borrrden **, sono venuto a sapere ma stavo solo supportando ** Borrrden ** pensato .. –

3

Hai solo bisogno di dichiarare il vostro metodo di -(NSArray*)getData:(NSString*)link; in coreConnection.h file.

Problemi correlati