(при условии, что вы работаете в среде без gc)
1) вы можете создать временную переменную и освободить временную переменную после сохранения / назначения.в противном случае вам нужно сравнить указатели.отложенный выпуск может также маскировать ошибки потоков (независимо от того, считаете ли вы, что это хорошо или плохо ...)
2), технически литералы NSString действительны в течение всей жизни вашей программы.то есть: while (1) [@"why won't i die?" release];
дает бесконечный цикл.
3) с явным сохранением, alloc + init, new и copy, вы должны уравновесить счет сохранения, используя release или autorelease.поскольку вы не опубликовали значение1, статический анализ может (правильно) определить это как утечку.поскольку строковые константы никогда не умирают, эти два несопоставимы в этом отношении.
4) в этом нет ничего плохого.проблема лежит в другом месте вашей программы.либо вы присваиваете его ивару без сохранения, либо выпускаете его позже.
попробуйте часто использовать статический анализ и уменьшите частоту использования автоматического выпуска (вы не можете избежать этого полностью).1013 * Ничто из этого не является магией, но вы можете, по крайней мере, уменьшить местоположение многих проблем на места вызова (или очень близко), не используя авто-релиз повсюду.просто используйте ручное сохранение / освобождение, где это возможно.
и, наконец, проверьте на утечки и запустите с включенными NSZombies.