Кажется, ваша основная проблема не в том, что означает =
.
Когда вы присваиваете одно значение указателя другому, как в этом случайно выбранном примере:
mostLikelyPhoneNumber = (NSMutableString*) NSStringphoneNumber;
вы не копирование содержимого второй строки в изменяемую первую строку.Скорее вы перезаписываете сам указатель.Таким образом, исходный указатель на NSMutableString
, который вы выделили ранее, равен lost , и теперь у вас есть только вторая ссылка на значение NSStringphoneNumber
, которому не принадлежит .
Вы делаете почти одно и то же везде в своем коде.
Когда вы в конце концов надеетесь на очистку, вы не сможете этого сделать, потому что у вас больше нет указателей ни на один изваши выделенные объекты;и когда вы пытаетесь , вместо этого вы перепроизводите кучу вещей, которые вам не принадлежат, что приводит к сбою.
Обычно в таких ситуациях я бы предложил пойти и прочитать руководство по управлению памятью , но, честно говоря, я думаю, что вам лучше вернуться к основам и сначала сделать некоторые исправления C.