Я обновил свой Xcode с 10.3 до версии Xcode 11, после того, как мой проект не компилируется, и он показывает ошибку:
Найдено несколько методов с именем 'objectID' с несоответствующим результатом, типом параметра или атрибутами ##
Я использую библиотеку EncryptedStore для coredata.когда я компилирую с 10.3, он работает, но с Xcode 11 показывает ошибку.
Есть идеи?
- (BOOL)handleInsertedRelationInSaveRequest:(NSRelationshipDescription *)desc forObject:(NSManagedObject *)object error:(NSError **)error {
BOOL __block success = YES;
NSNumber __block *one, *two;
NSArray *names = [@[[desc name],[[desc inverseRelationship] name]] sortedArrayUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
NSString *string = [NSString stringWithFormat:@"INSERT INTO %@ VALUES (?, ?);",
[self tableNameForRelationship:desc]];
[[object valueForKey:[desc name]] enumerateObjectsUsingBlock:^(id relative, NSUInteger idx, BOOL *stop) {
sqlite3_stmt *statement = [self preparedStatementForQuery:string];
if ([[names objectAtIndex:0] isEqualToString:[desc name]]) {
one = [self referenceObjectForObjectID:[relative objectID]];
two = [self referenceObjectForObjectID:[object objectID]];
} else {
one = [self referenceObjectForObjectID:[object objectID]];
two = [self referenceObjectForObjectID:[relative objectID]];
}
sqlite3_bind_int64(statement, 1, [one unsignedLongLongValue]);
sqlite3_bind_int64(statement, 2, [two unsignedLongLongValue]);
sqlite3_step(statement);
int finalize = sqlite3_finalize(statement);
if (finalize != SQLITE_OK && finalize != SQLITE_CONSTRAINT) {
if (error != nil) { *error = [self databaseError]; }
success = NO;
}
}];
return success;
}
В частности, я получаю сообщение об ошибке в этой части кода:
one = [self referenceObjectForObjectID:[relative objectID]];
и
two = [self referenceObjectForObjectID:[relative objectID]];