代码之家  ›  专栏  ›  技术社区  ›  Thanks

如何访问BOOL类型的属性?

  •  2
  • Thanks  · 技术社区  · 17 年前

    我有一个类,在标题中我定义了这个:

    @interface MyViewController : UIViewController {
        BOOL blackBackground;
    }
    @property(nonatomic, assign) BOOL blackBackground;
    

    [myViewController setBlackBackground:YES];
    

    if ([myViewController blackBackground]) {
      NSLog(@"yep, it's true");
    }
    

    3 回复  |  直到 11 年前
        1
  •  16
  •   Louis Gerbarg    17 年前

    您不能声明标量属性具有任何类型的保留、分配、复制语义,这将导致编译错误。您应该更改:

    @property(nonatomic, assign) BOOL blackBackground;
    

    @property(nonatomic) BOOL blackBackground;
    
        2
  •  1
  •   John    17 年前

        3
  •  1
  •   Community Mohan Dere    9 年前

    我同意@Louis Gerbarg的观点,相信你有一些拼写错误,或者只是构建了旧版本的代码,但我不同意他为你的错误提供的原因: 他写道:

    您不能声明的问题 更改:

    @属性(非原子,赋值)BOOL blackBackground;

    @属性(非原子)BOOL黑色背景;

    根据附带的链接和苹果的文件:

    @property (nonatomic, assign) BOOL blackBackground;
    

    以及:

    @property (nonatomic) BOOL blackBackground;
    

    都是一样的,因为“赋值”是属性的默认行为。

    正确的

    previous similar stackOverflow question and answer