Получить целочисленное значение из NSInteger
Это в функции, которую я реализую
-(NSString *)DeleteFolder:(NSInteger)FolderId;
В моей реализации я создаю строку, используя FolderId
NSString *dbScript = [NSString stringWithFormat:@"Delete from Folders Where FolderId = %d",FolderId];
но я не получаю FolderId, вместо идентификатора папки я получаю очень длинное целое значение. Может быть указатель ссылки.
Подскажите пожалуйста, как получить идентификатор папки. Я что-то не так делаю?
2 ответа
NSInteger
не является переносимым типом в том смысле, что вы никогда не узнаете, определен ли он как int
, long
, long long
или что-то другое. Итак %d
спецификатор конверсии, который предназначен исключительно для int
, не подходит для печати NSInteger
, Точнее, его использование приведет к неопределенному поведению. Вам нужно будет сделать явное приведение типа:
NSLog(@"Folder ID: %lld", (long long)FolderID);
(Я использовал long long
потому что это самый длинный стандартный целочисленный тип.)
Попробуйте так:
NSInteger a=20;
NSLog(@"yourInteger=%ld",(long)a);