Fingere ho una categoria sulla NSObject che definisce il seguente metodo:Perché la sintassi del punto non può essere utilizzata su un metodo il cui tipo di ritorno è instancetype?
+ (instancetype)allocTemplate
{
id instance = [self new];
return instance;
}
e ho la seguente classe:
@interface FDActor : NSObject
@property (nonatomic, copy) NSString *name;
+ (void)sayHi;
@end
@implementation FDActor
+ (void)sayHi
{
[self allocTemplate].name;
}
@end
Come mai [self allocTemplate].name
errori fuori al momento della compilazione se stessi è FDActor?
Sono consapevole che funziona se si utilizza la normale sintassi di invio dei messaggi, ma sono esplicitamente interessato all'errore di sintassi del punto.
Qual è l'errore? Ho provato qualcosa di simile e il mio è stato compilato. –
Nome proprietà 'non trovato su oggetto di tipo' id '. Per essere chiari, non intendo sostituire "self" con "FDActor". Intendo chiamare quel metodo all'interno di un metodo di classe all'interno di FDActor. –
Se la categoria è su NSObject, non instancetype restituire qualcosa digitato come NSObject? – michaels