предупреждение: форматировать не строковый литерал и не форматировать аргументы - PullRequest
0 голосов
/ 14 июня 2011

Может ли кто-нибудь помочь мне понять, почему возвращается строка кода ниже:

предупреждение: форматировать не строковый литерал и не форматировать аргументы

qFileTxtName = @"110327";
aString = [@"xxxx_" stringByAppendingString:qFileTxtName];

Что я пытаюсь получить как вывод:

xxxx_110327

Ответы [ 4 ]

3 голосов
/ 14 июня 2011

попробовать:

NSString *aString = @"xxxx_";
aString = [aString stringByAppendingString:qFileTextName];
2 голосов
/ 14 июня 2011

Если предположить, что qFileTxtName и aString определены как NSString*, то предоставленный вами код не выдает никакого предупреждения.

NSString *qFileTxtName = @"110327";
NSString *aString = [@"xxxx_" stringByAppendingString:qFileTxtName];
// no warnings

Я думаю, вы хотели написать -stringByAppendingFormat:, что выдаст предупреждение:

NSString *qFileTxtName = @"110327";
NSString *aString = [@"xxxx_" stringByAppendingFormat:qFileTxtName]; 
// warning: format not a string literal and no format arguments

Если вы действительно хотите использовать -stringByAppendingFormat:,вам нужно сделать что-то вроде этого:

NSString *aString = [@"xxxx_" stringByAppendingFormat:@"%@", qFileTxtName]; 

Следующие вызовы журналирования показывают другую операцию, которая приведет к этому предупреждению от компилятора, и лучший (более безопасный) способ его кодирования:

NSLog(aString); // warning: format not a string literal and no format arguments

NSLog(@"%@", aString); // the more secure way to do it
0 голосов
/ 07 декабря 2012

Это проблема форматера. В более новой версии ios sdk для этого есть новый метод. Поэтому используйте stringWithString вместо stringWithFormat. Как показано ниже.

 NSMutableArray * array_mutable = [NSMutableArray arrayWithObject:@"tekst"];
        NSString *s1;
        s1 = [NSString stringWithFormat:[myArray objectAtIndex:0]]; //(Format string is not a string literal (potentially insecure)
        s1 = [NSString stringWithString:[myArray objectAtIndex:0]]; //no problem
0 голосов
/ 14 июня 2011

Если вы не объявили их где-либо еще, попробуйте

NSString *qFileTxtName = @"110327";
NSString *aString = [@"xxxx_" stringByAppendingString:qFileTxtName];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...