04일차 OC 언어(04):property 강화

3492 단어
4
  • 내일까지 기다리지 마세요. 내일은 너무 멀어요. 오늘 행동하세요

  • 수독: 이 문장을 다 보고 나서 당신은 무엇을 할 수 있습니까?
    property 내부에서 무슨 짓을 했는지 알 수 있습니다 1>setter 생성 방법, Getter 생성 방법 2>내부에 개인 변수 생성(구성원 변수) 3>과 @synthesize age가 다릅니다 @synthesize age;age에 직접 값 부여
    학습 전: 당신은 반드시 무엇을 할 줄 알아야 합니까?
    포장이 뭔지 알아요.
    노트
      、
          Xcode4.4   Apple   @property      ,         @property         setter 、 getter          
              @property            ,   @property             _       
         
         @property      :           getter\setter        ,             
                      ,          setter\getter  
                       ,                ,       
         
              @property    getter/setter  ,            ,             _       
           : @property                         ,      .m      ,    .h      
      、
              setter  ,  property     getter  
              getter  ,  property     setter  
                 getter/setter  ,  @property                  
      、  :
              @synthesize     
                 _age
             @synthesize age;          age;
    

    코드
    main.m
    #pragma mark 04-property  
    #pragma mark   
    /*
      、
          Xcode4.4   Apple   @property      ,         @property         setter 、 getter          
              @property            ,   @property             _       
         
         @property      :           getter\setter        ,             
                      ,          setter\getter  
                       ,                ,       
         
              @property    getter/setter  ,            ,             _       
           : @property                         ,      .m      ,    .h      
      、
              setter  ,  property     getter  
              getter  ,  property     setter  
                 getter/setter  ,  @property                  
      、  :
              @synthesize     
                 _age
             @synthesize age;          age;
     */
    #pragma mark -   
    #import 
    #pragma mark  
    #import "Person.h"
    #pragma mark - main  
    int main(int argc, const char * argv[])
    {
        Person *p = [Person new];
        [p setAge:25];
    //    NSLog(@"age = %i",[p age]);
    #pragma          age? _age?
        /*
           :
              @synthesize     
                 _age
             @synthesize age;          age;
         */
    //    NSLog(@"age = %i, _age = %i",p->age,p->_age);
    //    p->_age
        return 0;
    }
    

    Person
    >>>.h
    #import 
    
    @interface Person : NSObject
    /*
    {
        @public
        int _age;
        int age;
    }
     */
    
    #pragma @property  
    /*
      Xcode4.4   Apple   @property      ,         @property         setter 、 getter          
          @property            ,   @property             _       
     
     @property      :           getter\setter        ,             
                  ,          setter\getter  
                   ,                ,       
     
          @property    getter/setter  ,            ,             _       
       : @property                         ,      .m      ,    .h      
     */
    /*
     - (void)setAge:(int)age;
     - (int)age;
     */
    
    
    //             age    _age?
    @property int age;
    @end
    
    >>>.m
    #import "Person.h"
    
    @implementation Person
    
    /*
     {
        int _age;
     }
     - (void)setAge:(int)age
     {
        _age = age;
     }
     - (int)age
     {
        _age = age;
     }
    
     */
    
    /*
          setter  ,  property     getter  
          getter  ,  property     setter  
             getter/setter  ,  @property                  
     */
    - (void)setAge:(int)age
    {
        if (age < 0) {
            age = 0;
        }
        _age = age;
    }
    @end
    

    좋은 웹페이지 즐겨찾기