【问题标题】:Approach to overriding a Core Data property: isDeleted覆盖核心数据属性的方法:isDeleted
【发布时间】:2015-01-22 09:01:47
【问题描述】:

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

@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

【问题讨论】:

  • 我想你想要 NSAssert(false, @"...")

标签: objective-c core-data


【解决方案1】:

我认为以下更优雅:

@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

试一试。

【讨论】:

  • 有趣。谢谢!对于阅读本文的任何人,请在此处了解有关 __attribute__ 的更多信息:nshipster.com/__attribute__
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-25
  • 2019-08-18
  • 1970-01-01
相关资源
最近更新 更多