W jaki sposób środowisko wykonawcze Objective-C traktuje właściwość zdefiniowaną jako weak
w klasie, ale kategoria prywatna w klasie definiuje właściwość o tej samej nazwie i typie, co strong
?Właściwości obiektu C - silne i słabe deklaracje w kategoriach
Czy kod działający w kontekście kategorii będzie używał oryginalnego (słabego) modyfikatora, czy użyje modyfikatora zdefiniowanego w kategorii (silnego)?
Na przykład:
Name.m
@property (weak, nonatomic) NSString *name;
NameTests.m
@interface Name (Test)
@property (strong, nonatomic) NSString *name;
@end
Dobre pytanie! Jestem zaskoczony, że to się kompiluje (chociaż prawdopodobnie można się dowiedzieć, co się tam dzieje z małą konfiguracją testów). – dasblinkenlight