当前位置:  开发笔记 > 数据库 > 正文

使用基本类型的属性

如何解决《使用基本类型的属性》经验,为你挑选了1个好方法。

我无法理解何时在Objective C 2.0中使用属性.看起来您不需要基本类型的属性,例如:int,bool,float.这是真的?我已经看到了显示这些类型的属性以及其他类型的示例.例如,在Apple的示例代码中,他们有:

...
@interface Book : NSObject {
    // Primary key in the database.
    NSInteger primaryKey;
    // Attributes.
    NSString *title;
    NSDate *copyright;
    NSString *author;

    BOOL hydrated;
    BOOL dirty;
    NSData *data;
}

@property (assign, nonatomic, readonly) NSInteger primaryKey;
// The remaining attributes are copied rather than retained because they are value objects.
@property (copy, nonatomic) NSString *title;
@property (copy, nonatomic) NSDate *copyright;
@property (copy, nonatomic) NSString *author;
...

Apple SQLite书单示例代码

因此,您可以看到它们不为BOOL使用属性,但是它们认为它在整个实现文件中都有一个实例变量,读取值并设置值.在线搜索我发现了使用这些类型的属性的教程,例如:(@ property BOOL flag).有人可以为我阐明这个话题吗?谢谢.



1> Marc Charbon..:

是的,您应该声明基本类型的属性.唯一真正的区别是您应该使用assign(这是默认值,因此您也可以将其保留),而不是复制或保留.我不能代表示例的其余部分,但它可能直接访问内部实例变量,或者如果从另一个类访问它,则键值编码生成一个访问器(这是非常糟糕的形式).我猜它是前者; 如果我不需要特殊的访问器并且实例变量不在类外使用,我将直接引用它而不是声明属性.有些人可能会反对我的想法,但对我来说似乎有些过分.


是的我同意如果没有必要,不需要原语属性.如果您需要在课外访问它,那么您需要一个属性.
推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有