здесь блок ObjectiveCКак сохранить этот объект objectC внутри быстрой переменной?
@property (copy) void (^anObjcBlock)();
anObjcBlock = ^{
NSLog(@"Yea man this thing works!!");
};
NSMutableArray *theArrayThatHasTheBlockInItAtIndexZero = [NSmutableArray array];
[theArrayThatHasTheBlockInItAtIndexZero addObject:anObjBlock];
Вот что я сделал в скор:
var theBlock: (()->Void) ?
theBlock = theArrayThatHasTheBlockInItAtIndexZero[0] as?()->Void
//Now call the block
theBlock!()
Но с этим я получаю ошибку во время выполнения. В принципе, заявление theBlock = theArrayThatHasTheBlockInItAtIndexZero[0] as?()->Void
составило бы theBlock
ноль, потому что as?
потерпел неудачу. И когда я сменил заявление на theBlock = theArrayThatHasTheBlockInItAtIndexZero[0] as!()->Void
, я получил ошибку времени выполнения.
Я не уверен, что еще делать. Это пустой проект, в нем действительно нет кода.
Вы можете попытаться окружить определение блока с помощью кронштейна? var theBlock: (() -> Void)? –
Да, извините. Я уже сделал это в скобках. Я отредактировал вопрос –
Тай, чтобы установить тип блока в 'var block: (@convention (block)() -> Void)?'. (Swift 2.0 - для Swift 1.x используйте '@ objc_block' вместо' @convention (block') –