Я хочу использовать некоторые вещи NSAssert и другие вещи, чтобы улучшить отладку в моем приложении. NSAssert хочет строку, которую он печатает, если утверждение не выполняется. Красиво, но бесполезно, если вы не наберете в этой строке целую кучу информации, которая может стать большой неразберихой, если будет выполняться повсюду.
Итак, я хочу создать макрос, который будет выполнять вызов NSAssert со строкой, содержащей полезную информацию, такую как имя класса, имя метода и другие вещи. Но что более важно, я хочу также предоставить собственный комментарий. Представьте себе такой макрос:
USEFUL_ASSERT (foo! = Nil, @ "это было не очень хорошо")
по многим причинам я не могу использовать здесь вызов функции или метода, потому что контекст будет потерян, и я не смогу узнать, какой класс вызвал эту проблему, какой метод вызвал эту проблему. Это можно сделать только внутри самого метода, поэтому мне пришлось бы передать множество параметров для этой информации, таких как [self class] и _cmd, но я не хочу, чтобы все это было разбросано повсюду. Чем короче код для вставки, тем лучше его поддерживать.
Любая идея?