Вы имеете в виду возвращаемое значение из этого метода?
+ (ContactInfo *)findOrCreateContact:(NSDictionary *)data inManagedObjectContext:(NSManagedObjectContext *)context
Сначала присваивайте имя функции состояния find OR create
, поэтому с таким именем вы должны возвращать объект в обоих случаях, тот, который у вас естьнайти или только что созданный.Это поможет избежать путаницы.
Во-вторых, ваш возвращаемый тип - это объект, поэтому вы должны вернуть nil
или объект.
Таким образом, на данный момент вам нужно решить, хотите ли вы соблюдать свое наименование или нет, но, скажем, хотите.
У вас может быть такой метод:
+ (ContactInfo *)findOrCreateContact:(NSDictionary *)data
inManagedObjectContext:(NSManagedObjectContext *)context
contactWasCreated:(BOOL *)isNew
Передав указатель на BOOL, вы можете установить его в YES, если ContactInfo был создан, и NO, если вы возвращаете уже существующее, и вы все равно можете вернуть nil, если у вас не было возможности вернуть ContactInfo.,Передача BOOL в качестве указателя вдохновлена - (BOOL)save:(NSError **)error
, когда вы передаете указатель на объект, который может восстановить NSError, если это необходимо.
Таким образом, вы можете сказать
if (contanctInfo && wasCreated)
{
// I've got a new one
}
else if (contactInfo)
{
// I just receive an old one
}
else
{
// something very bad just happened...
}
.также решите вернуть NSDictionary с ContactInfo в качестве одной записи и NSNumber для BOOL в качестве другой записи.