SwiftからObjective-Cの可変引数を含むメソッドが使用できない
Objective-CのコードをSwiftから使用しようとしているのですが
@interface HMCoreDataManager : NSObject
// primitive
- (NSArray *)objectsWithEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors predicate:(NSPredicate *)predicate error:(NSError **)error;
// A
- (NSArray *)objectsWithEntityName:(NSString *)entityName sortDescriptors:(NSArray *)sortDescriptors error:(NSError **)error predicateFormat:(NSString *)format, ...;
- (NSArray *)objectsWithEntityName:(NSString *)entityName predicate:(NSPredicate *)predicate error:(NSError **)error;
// B
- (NSArray *)objectsWithEntityName:(NSString *)entityName error:(NSError **)error predicateFormat:(NSString *)format, ...;
@end
上のクラスの AのメソッドをSwiftから呼ぼうとすると
error: extra argument in call
というコンパイルエラーが
BのメソッドをSwiftから呼ぼうとすると
error: argument 'predicateFormat' must precede argument 'error'
というコンパイルエラーが発生します
いずれも可変引数を含むメソッドなのですが、Swiftから可変引数を含むObjective-Cメソッドを呼ぶ場合何か制約があるのでしょうか
それとも何か別の要因があるのでしょうか?