recherche

Maison  >  Questions et réponses  >  le corps du texte

objective-c - OC中间没有使用synthesize关键字,为什么还能访问呢?

#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关键字,怎么还是能调用呢?

天蓬老师天蓬老师2804 Il y a quelques jours438

répondre à tous(5)je répondrai

  • 大家讲道理

    大家讲道理2017-04-24 09:16:05

    Après avoir utilisé ARC, @synthesize et int _age; peuvent être omis et seront ajoutés automatiquement. Le code devient désormais élégant !

    répondre
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-24 09:16:05

    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.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-24 09:16:05

    Grâce à @property, la méthode getter setter est automatiquement générée.

    répondre
    0
  • 高洛峰

    高洛峰2017-04-24 09:16:05

    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.

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-24 09:16:05

    Le compilateur gère cela automatiquement, pas besoin d'écrire sythesize

    répondre
    0
  • Annulerrépondre