Я пишу библиотеку Objective-C, и я хотел бы, чтобы она предложила простой подключаемый механизм ведения журнала, чтобы пользователь библиотеки мог включать и выключать ведение журнала.Я подумал, что интересным способом сделать это будет свойство блока библиотечных классов:
typedef void (^Logger)(NSString *fmt, ...);
@property(copy) Logger logger;
logger(@"Foo, %@.", self);
Но я не знаю, как передать список аргументов переменной в NSLog
:
const Logger SimpleLogger = ^(NSString *fmt, ...) {
// what goes in here?
};