Доброго времени суток!
Встал вопрос возможно ли реализовать следующее поведение ф-ции с блоком в качестве параметра:
Объявление ф-ции:
NSString *AppendString(NSString *string, void (^block)(NSString *stringToAppend));
Реализация:
NSString *AppendString(NSString *string, void (^block)(NSString *stringToAppend)){
// Хочется получить доступ к stringToAppend, возможно ли это впринципи?
return [NSString stringWithFormat:@"%@<<-->>%@", string, stringToAppend];
}
Использование:
NSString *newString = AppendString(@"firstString", ^(NSString *stringToAppend){
// Нужно изменить значение переменной блока и получить доступ к измененному значению внутри самого блока, те в реализации ф-ции
stringToAppend = @"secondString";
});
Те в функцию передаем одну строчку нормальным способом, а вторую изменяем внутри блока, и внутри самой функции складываем строчки и возвращаем результат. Это возможно?
ЗЫ: Я знаю что это извращенство, отдаю себе отчет, что это возможно не реализовать, знаю как надо использовать блоки по назначению. Заранее спасибо!