Несколько методов с именем 'objectID' найдено с несоответствующим результатом, типом параметра или атрибутами после обновления до Xcode 11 - PullRequest
0 голосов
/ 24 сентября 2019

Я обновил свой 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]];
...