Udawaj, mam kategorię na NSObject który definiuje następujące metody:Dlaczego nie można stosować składni punktowej dla metody, której typem powrotu jest instancetype?
+ (instancetype)allocTemplate
{
id instance = [self new];
return instance;
}
i mam następujące klasy:
@interface FDActor : NSObject
@property (nonatomic, copy) NSString *name;
+ (void)sayHi;
@end
@implementation FDActor
+ (void)sayHi
{
[self allocTemplate].name;
}
@end
[self allocTemplate].name
błędy Jak to się stało się w czasie kompilacji, jeśli ja jest FDActor?
Wiem, że działa, jeśli używasz normalnej składni wysyłania komunikatów, ale jestem wyraźnie zainteresowany błędem składni kropki.
Jaki jest błąd? Próbowałem czegoś podobnego, a moje skompilowałem. –
Nie znaleziono nazwy obiektu na obiekcie typu "id". Dla jasności nie mam na myśli zastąpienia "ja" przez "FDActor". Mam na myśli wywołanie tej metody wewnątrz metody klasy wewnątrz FDActor. –
Jeśli kategoria jest włączona w obiekcie NSObject, to czy instancetype nie powróciłby do typu NSObject? – michaels