Eu aș spune că ai scris aiurea în memorie și ai avut ghinionul să nu nimerești în alt segment (primeai segfault).
Ai stricat și pointer-ul de “isa” care-i la începutul clasei în memorie deci n-are legatura (numai cu) conținutul NSString-ului.
Conținutul apare UTF-8 pentru ca ai băgat 0-uri în storage-ul NSString-ului.
Ai ceva făcut “manual” prin cod (array-uri statice sub-dimensionate, memcpy-uri făcute de mână)?
Valgrind prinde așa ceva dacă ai rabdare să-l folosești (deși vad că ai ceva cu UI pe acolo - nu știu cum se poate folosi pe chestii de iOS).