1

Я использую Xcode 4.6. Мое приложение работает на устройстве и на тренажере, но я получаю предупреждение, когда здание:"Строка формата не является строковым литералом (потенциально небезопасным)"

«Формат строка не строковая (потенциально небезопасный)»

из этого кода

[sArray addObject:[NSString stringWithFormat:subCatName]]; 

l.text= [spacing stringByAppendingFormat:[mArray objectAtIndex:section]]; 

Почему и как его исправить?

ответ

8

Так как вы на самом деле не форматировать строку, сделайте следующее:

[sArray addObject:subCatName]; 

l.text= [spacing stringByAppendingString:[mArray objectAtIndex:section]]; 

По какой-то причине, NSString stringWithFormat: является одним из наиболее злоупотреблявших методов, которые я вижу на SO. Его следует использовать только тогда, когда вы на самом деле форматируете строку с одной или несколькими переменными, помещаемыми в финальную строку.

+4

+1 для «одного из самых злоупотребляющих методов»! –

+2

@MartinR Я бы хотел узнать источник этого злоупотребления. Должны быть некоторые онлайн-курсы или книги, которые неправильно обучают его использованию. – rmaddy

+0

@rmaddy: Вы правы. +1 – Ram