【问题标题】:Can I remove the @private generated by Core Data?我可以删除 Core Data 生成的 @private 吗?
【发布时间】:2011-08-06 16:54:31
【问题描述】:

下面Core Data生成的文件中的@private是什么意思?我知道what @private means in Objective-C,但是后面没有列出实例变量,所以我不能把它拿出来吗?

//
//  Event.h
//

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>


@interface Event : NSManagedObject {
@private
}
@property (nonatomic, retain) NSDate * timestamp;

@end


//
//  Event.m
//  

#import "Event.h"


@implementation Event
@dynamic id;

@end

【问题讨论】:

    标签: objective-c core-data dynamic private


    【解决方案1】:

    您可以放心地将其取出,它不会改变您班级的语义。如果您对 XCode 为您生成的内容不满意(尽管这是一个合理的默认设置),我建议您查看 https://github.com/rentzsch/mogenerator

    【讨论】:

    • 谢谢。我会检查发电机。我之前传递过一次,但我认为是时候了……不仅是为了使模型更改更容易,而且还能够使用 git 跟踪更改。 .xcdatamodel 包中的文件是二进制文件,所以我看不到差异。
    【解决方案2】:

    你可以,但它不会受伤。如果你再次生成模型,它只会把它放回去。

    【讨论】:

      【解决方案3】:

      Xcode 现在默认为实例变量生成带有@private 的类,您应该在需要时声明它们。您可以安全地删除 @private,因为正如您已经注意到的那样,没有实例变量。实际上,该类声明等价于

      @interface Event : NSManagedObject
      @property (nonatomic, retain) NSDate * timestamp;   
      @end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-12
        • 2020-02-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-11
        相关资源
        最近更新 更多