代码之家  ›  专栏  ›  技术社区  ›  bentford Marko Hlebar

仅仅为了内存管理的好处而对私有变量使用@properties是“坏”的吗?

  •  9
  • bentford Marko Hlebar  · 技术社区  · 17 年前

    例子: 我通常这样做是为了发布一个私有ivar:

    [name release]; name = nil;
    

    但是使用@properties,我可以做到这一点:

    self.name = nil;
    

    稍后在我的代码中,将执行此操作,因此需要设置为nil:

    if( !name)
        name = [[NSString alloc] initWithFormat:@"Hi %@",inputName];
    
    3 回复  |  直到 17 年前
        1
  •  23
  •   andyvn22    17 年前

    #import "MyClass.h"
    
    @interface MyClass ()
        @property (retain) NSString* privateString; 
    @end
    
    @implementation MyClass
    
        @synthesize privateString;
        // Your code here
    
    @end
    

    现在,您可以轻松地使用属性,但其他类仍然无法访问它,即使它们导入了您的.h文件!

        2
  •  2
  •   NSResponder    17 年前

        3
  •  0
  •   Tom Dalling    17 年前

    至于私人财产,我不太确定。使用属性只会在编码时为您节省几个按键,但您也会使其稍微复杂和脆弱。我更喜欢可读性和可维护性,而不是写作的便利性,因为从长远来看,你会节省时间。