本文介绍了NSString的自定义setter的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个名为fontType的NSString

I have a NSString called fontType

我正在尝试为它设置一个自定义setter:

and I am trying to have a custom setter for it:

- (void) setFontType:(NSString *) fType
{   
    if (self.fontType != fType){
        [fontType release];
        self.fontType = [fType retain];
        //some more custom code
    }
}

是这有什么问题吗?

推荐答案

有些事情对我来说很突出:

A few things that stand out for me:


  • 不要在自定义访问者中使用 self。。直接访问变量

  • 对于具有
    可变子类型的类型的属性,最好使用复制语义

  • 小心不管是什么 //更多自定义代码

  • do not use self. inside of custom accessors. access the variable directly
  • it's better use copy semantics for properties of a type that has amutable subtype
  • be careful with whatever is // some more custom code

我的个人风格偏好如下:

My personal style preferences are like so:

-(void)setFontType:(NSString *)fontType_ {
   if (fontType == fontType_) return; // get out quick, flatten the code

   [fontType release];
   fontType = [fontType_ copy];

   // some more code
}

Cocoa with Love有关于此主题的 。值得一读。

Cocoa with Love has a good article on this topic. It's worth a read.

这篇关于NSString的自定义setter的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-24 23:52