Objective c 如何处理在Obj C或Swift中返回对象或nil的核心数据自定义方法
我有一个核心数据项目,有实体个人和个人事件。 在PersonEvent和Person之间存在多对一关系(personEvents)。 个人事件可以有一种类型,如出生、死亡。。。约会。。。 在Person实体的CoreDataProperties文件中,我创建了一个名为personBirthDate的自定义方法,该方法应返回NSDateObjective c 如何处理在Obj C或Swift中返回对象或nil的核心数据自定义方法,objective-c,swift,core-data,entity-relationship,Objective C,Swift,Core Data,Entity Relationship,我有一个核心数据项目,有实体个人和个人事件。 在PersonEvent和Person之间存在多对一关系(personEvents)。 个人事件可以有一种类型,如出生、死亡。。。约会。。。 在Person实体的CoreDataProperties文件中,我创建了一个名为personBirthDate的自定义方法,该方法应返回NSDate -(NSDate *)personBirthDate { NSDate * birthDate; // Use the relationship
-(NSDate *)personBirthDate
{
NSDate * birthDate;
// Use the relationship to get the related events
NSArray *personEventsArray = [self.personEvents allObjects];
// loop array to find an event of type birth
// get the NSDate of the event in the PersonEvent
// return the birthDate;
// code here ....
return birthDate;
}
Person.personBirthDate在某些视图中与绑定一起使用。
代码不会崩溃,因为没有日期的事件不存在,也不会显示,但会正确地安静下来。因此,xcode抱怨“从方法返回nil…”
如果没有类型为birth的事件链接到此人,此方法将返回nil
实现这一点的最佳或更好的方法是什么?让我回答一下,而不是评论一下 检查类的接口,因为方法返回类型似乎是
nonnull
类型,这意味着返回值永远不应该是nil
一种解决方案是将nonnull
更改为nullable
,这表明返回值可以是nil值
以下是一个苹果博客,讨论非空和可空密钥:
主题片段:
\u可空
和\u非空
。正如您所料,\u Nullable
指针可能具有NULL或nil值,而\u Nonnull
指针则不应具有NULL或nil值。如果您试图违反规则,编译器将告诉您
让我回答一下,而不是评论一下 检查类的接口,因为方法返回类型似乎是
nonnull
类型,这意味着返回值永远不应该是nil
一种解决方案是将nonnull
更改为nullable
,这表明返回值可以是nil值
以下是一个苹果博客,讨论非空和可空密钥:
主题片段:
\u可空
和\u非空
。正如您所料,\u Nullable
指针可能具有NULL或nil值,而\u Nonnull
指针则不应具有NULL或nil值。如果您试图违反规则,编译器将告诉您
接口上声明了什么?可能在界面中有
-(NSDate*\uu nonnull)personBirthDate代码>'@property(非原子,强)NSDate*personBirthDate;'当我将其更改为“@property(null,非原子,强)NSDate*personBirthDate;”很好。我从未想过这件事。非常感谢!接口上声明了什么?可能在界面中有-(NSDate*\uu nonnull)personBirthDate代码>'@property(非原子,强)NSDate*personBirthDate;'当我将其更改为“@property(null,非原子,强)NSDate*personBirthDate;”很好。我从未想过这件事。非常感谢!