#import <Foundation/Foundation.h>
/**
默认的范围是protected
**/
@interface Animal :NSObject
{
int _age;
NSString * name;
}
@property int age;
@end
@implementation Animal{
}
@end
int main(int argc, const char * argv[]) {
Animal* animal=[Animal new];
animal.age=10;
[animal setAge:5];
NSLog(@"age is %d",animal.age);
return 0;
}
不是说synthesize关键字是在实现中自动生成set和get方法吗?但是我这里是没有使用
synthesize关键字,怎么还是能调用呢?
Après avoir utilisé ARC,
@synthesize
etint _age;
peuvent être omis et seront ajoutés automatiquement. Le code devient désormais élégant !Il n'est pas permis d'écrire ainsi dans les versions précédentes d'iOS. Si je me souviens bien, il est possible d'omettre le mot-clé de synthèse après iOS7. Tant que la propriété est définie, le système générera automatiquement le get et le set par défaut. méthodes.
Grâce à @property, la méthode getter setter est automatiquement générée.
Contrairement à la réponse de @isteven, le rôle d'ARC est d'assurer une gestion automatique de la mémoire, et non d'ignorer @synthesize. La raison pour laquelle @synthesize peut être ignoré est que chaque fois qu'une variable globale est déclarée dans le passé, elle doit y être resynchronisée. Étant donné que cette étape est devenue une étape répétitive, le développement iOS a ensuite omis cette étape par souci d'humanisation et a en fait chargé cette partie automatiquement.
Le compilateur gère cela automatiquement, pas besoin d'écrire sythesize