Мне удалось вызвать необъявленный метод, объявив его сам (должен быть объявлен так, чтобы компилятор принял его):
@interface NSEntityDescription ()
- (void)setCompoundIndexes:(NSArray*)anArray;
@end
позже в моем коде, где я создаю свой NSManagedObjectModel программно, я могу назвать его:
[entity setCompoundIndexes:
[NSArray arrayWithObjects:[NSArray arrayWithObjects:@"open", @"close", nil], nil]
];
Я думаю, что Apple просто забыла поместить методы в API CoreData. Эта функция определенно доступна и в Mac OS X, иначе Xcode не будет предлагать пользовательский интерфейс в инструменте моделирования xcdatamodel.
Я также могу подтвердить, что приведенные выше операторы работают, потому что я нашел соответствующий составной индекс, созданный CoreData в базе данных sqlite3:
CREATE INDEX ZOHLCV_ZOPEN_ZCLOSE ON ZOHLV (ZOPEN, ZCLOSE);