覆盖Core数据属性的方法:isDeleted [英] Approach to overriding a Core Data property: isDeleted

查看:126
本文介绍了覆盖Core数据属性的方法:isDeleted的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要覆盖 NSManagedObject 中的 isDeleted 属性,因为它没有在我的应用程序中使用,当它在过去被意外使用时,引入了微妙的错误。为了这个目标,我正在考虑做一些类似下面的事情,只需让所有的 NSManagedObject 类型继承自这个父类。这是我想要做的最佳方法吗?

I'd like to override the isDeleted property in NSManagedObject since it isn't being used in my application, and when it's accidentally been used in the past, subtle bugs were introduced. With that goal in mind, I was thinking of doing something like the following, and simply having all my NSManagedObject types inherit from this parent. Is this an optimal approach for what I'm looking to do?

@interface CustomManagedObject : NSManagedObject
@property (nonatomic, getter=isDeleted, readonly) BOOL deleted;
@end

@implementation CustomManagedObject

- (BOOL)isDeleted
{
    NSAssert(FALSE, @"Did you mean isDeleted, because that is not allowed...!");
}

// ....

@end


推荐答案

我认为以下是更优雅的:

I think the following is more elegant to have:

@interface CustomManagedObject : NSManagedObject
@property (nonatomic, getter=isDeleted, readonly) BOOL deleted __attribute__((unavailable));
@end

@interface CustomManagedObject : NSManagedObject
@property (nonatomic, getter=isDeleted, readonly) BOOL deleted __attribute__((deprecated));
@end

试试。

这篇关于覆盖Core数据属性的方法:isDeleted的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆