К сожалению, вы не можете создать такую строку:
documentController.name = @"%@", soundFileName;
@"%@"
- это буквальное значение NSString
, но компилятор не сделает для вас никакого форматирования / замены. Вы должны явно сделать вызов одного из методов строкового конструктора:
documentController.name = [NSString stringWithFormat:@"%@", soundFileName];
В этом случае, тем не менее, поскольку soundFileName
сам по себе является NSString
, все, что вам нужно сделать, это назначить:
documentController.name = soundFileName;
Предупреждение, которое вы получаете, это то, что компилятор говорит вам, что бит после запятой (где вы ссылаетесь на soundFileName
) оценивается, а затем отбрасывается, и это действительно то, что вы хотели сделать?
В C, и, следовательно, в ObjC, запятая является оператором, который может разделять операторы; каждый оценивается отдельно. Таким образом, эта строка, в которой вы получаете предупреждение, может быть переписана:
documentController.name = @"%@";
soundFileName;
Как видите, вторая строка вообще ничего не делает.