Ak sa metóda Delegate nedostane do výzvy, potom všetko, čo treba skontrolovať, aby sa zabezpečilo, že delegát je odkazovaný v viewController?
odpovede:
5 pre odpoveď č. 1No, na začiatok sa musíte prispôsobiť protokolu v hlavičke:
@interface MyViewController : UIViewController <YOUR DELEGATE"S PROTOCOL HERE,
UITableViewDelegate>{
}
@end
To je najčastejšia chyba.
Takisto sa uistite, že ste nastavili delegáta. Normálne to môžete urobiť takto:
myObject.delegate = self;
Hoci niektoré triedy to robia pri initalizácii:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"MY APP"
message:@"HELLO"
delegate:self
cancelButtonTitle:@"CLOSE"
otherButtonTitles:nil];
0 pre odpoveď č. 2
Ak sa delegované metódy nedostanú kedykoľvekočakávate od nich, je možné, že ste vlastne nezaujali delegáta. To sa dá vykonať buď v kóde, alebo v prostredí tvorcu rozhraní. Napríklad a UITableView
v prostredí staviteľ môže mať svoje dataSource
a delegovať odbytia priradené k cieľu, napríklad "Vlastník súboru".