Я хочу ссылаться на перечисленные объекты с их конкретным типом, а не только на общий AnyObject!
, но не могу найти никакой информации об этом в документах.enumerateObjectsUsingBlock - параметры литья в Swift
Подпись enumerateObjectsUsingBlock
в Swift является:
func enumerateObjectsUsingBlock(_ block: ((AnyObject!,
Int,
UnsafePointer<ObjCBool>) -> Void)!)
и в Objective C:
- (void)enumerateObjectsUsingBlock:(void (^)(id obj,
NSUInteger idx,
BOOL *stop))block
Если я хочу, чтобы рассматривать объекты, которые повторяются в течение как определенного типа, в Objective CI просто отрегулируйте подпись на лету, например:
[array enumerateObjectsUsingBlock:^(NSString *s, NSUInteger idx, BOOL *stop){
// ...some function of s as NSString, not just id...
}];
я получаю это поведение в Свифт?
Вы пробовали кастинг? – Abizern
Он работает с кастингом в функциональном теле, но это выглядит не так ... естественным как адаптированная сигнатура в Obj-C. – SaltyNuts