Передача макроса __FILE__ в качестве аргумента - PullRequest
0 голосов
/ 03 марта 2012

Я пытаюсь создать функцию в Objective-C, которая будет принимать __FILE__ и _cmd в качестве аргументов для подготовки их к событию регистрации Flurry.

Вот моя подпись функции:

NSDictionary *prepareFailedRequestData(ASIFormDataRequest *request, char file, SEL method);

Я не уверен, что набирать аргумент 'file' как.Я пытался использовать «unsigned char» на основании найденной документации, но это, как и моя текущая реализация, выдает предупреждения компилятора и приводит к сбою программы.

Если «file» будет выводом __FILE__ макрос, как мне набрать аргумент?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 03 марта 2012

__FILE__ расширяется до литеральной строки, например "MyFile.m", поэтому обычно вы используете const char * в качестве типа:

NSDictionary *prepareFailedRequestData(ASIFormDataRequest *request,
    const char *file, SEL method);
1 голос
/ 03 марта 2012
//You would need to do something like this
const char *currentFile=__FILE__;

является константной строкой из документации Apple :

Этот макрос раскрывается до имени текущего входного файла в форме строковой константы C Это путь, по которому препроцессор открыл файл, а не короткое имя, указанное в `#include 'или как аргумент имени входного файла. Например, "/usr/local/include/myheader.h" это возможное расширение этого макроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...