2013-07-09 9 views
11

Mam klasę połączenia w moim projekcie. Chcę używać tej klasy do wielu prac. Kiedy próbowałem zadzwonić funkcji tej klasy robi się następujący błąd: Brak widocznych @interface deklaruje Błąd SelectorBrak widocznego interfejsu @ deklaruje błąd selektora.

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

Dam ci wskazówkę. Spójrz, jak zadeklarowałeś to w pliku .h w stosunku do pliku .m – borrrden

+12

Do wszystkich: Oto kolejny świetny przykład pomagania ludziom pytającym bez głosów. Dobra robota! Niektóre pomocne komentarze byłyby bardzo pomocne, nawet jeśli temat jest zbyt łatwy dla nielicznych wyborców. Nikt nie urodził się jako w pełni rozwinięty programista. +1 za posiadanie odwagi zadawania pytań w lwówku. – JFS

+1

Nie masz problemu z metodą getData? wykonujesz asynchroniczne żądanie, w którym aktualizujesz 'returnData', ale zwracasz jego wartość z procedury obsługi zakończenia ... Myślę też, że nie musisz używać dispatch_async w asynchronicznym żądaniu. – zbMax

Odpowiedz

11

Hehe problem jest całkiem prosty twoja wiadomość TZT w realizacji i wykorzystywane w kodzie jest

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

nie

-(NSArray*)getData; 

która jest zadeklarowana w pliku .h więc złożyć oświadczenie jako

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

w pliku .h

EDYCJA

też brakowało * w allocing obiektowi

Zastosowanie

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

Cholera, miałem nadzieję, że mój komentarz sprawi, że OP będzie w stanie zrealizować to samodzielnie>. To jest jednak poprawna odpowiedź. Maulik też. – borrrden

+1

hehe tak czekałem dłużej niż 5 minut, aby odpowiedzieć na Twój komentarz, ale nikt go nie dostał: D lol –

+0

@ LithuT.V. Po rozmowie z ** Borrrden ** komentarze, przyszedłem do Know ale tylko wspierałem ** Borrrden ** myślałem .. –

3

wystarczy zadeklarować metodę -(NSArray*)getData:(NSString*)link; w coreConnection.h pliku.

Powiązane problemy