У меня есть сомнения относительно повторного объявления свойства
Обзор:
На заметку : - Управление памятью = ARC (автоматический подсчет ссылок)
Вопрос:
Код: (в отдельных файлах)
Ah
#import<Foundation/Foundation.h>
@interface A : NSObject
@property (readonly) int n1;
- (void) display;
@end
Am
#import "A.h"
@implementation A
@synthesize n1 = _n1;
- (void) display
{
printf("_n1 = %i\n", _n1); //I expected _n1 and self.n1 to display the same value
printf("self.n1 = %i\n\n", self.n1); //but they seem to display different values
}
@end
Bh
#import"A.h"
@interface B : A
@property (readwrite) int n1;
@end
Bm
#import"B.h"
@implementation B
@synthesize n1 = _n1;
@end
test.m
#import"B.h"
int main()
{
system("clear");
B* b1 = [[B alloc] init];
b1.n1 = 20;
[b1 display]; //Doubt - my expected behavior is different from actual behavior
return(0);
}
Ожидаемое поведение:
_n1 = 20
self.n1 = 20
Фактическое поведение:
_n1 = 0
self.n1 = 20