Хмм ... Звучит так, будто ваша программа использует автоматический подсчет ссылок (ARC) , где ваши свойства и переменные могут быть слабыми или сильными ссылками, а сохранения и выпуски генерируются для вас автоматически.
Из этого документа:
// The following declaration is a synonym for: @property(retain) MyClass *myObject;
@property(strong) MyClass *myObject;
// The following declaration is similar to "@property(assign) MyClass *myObject;"
// except that if the MyClass instance is deallocated,
// the property value is set to nil instead of remaining as a dangling pointer.
@property(weak) MyClass *myObject;
ARC не генерирует никаких сохранений для вашей переменной myArray, поэтому, когда у вас нет сильных ссылок на нее, ее память освобождается и любые ссылки на нее обнуляются, что приводит к поведению, которое вы видите. Попробуйте изменить вашу собственность со слабой на сильную ссылку. Слабые ссылки могут быть полезны для предотвращения циклов ссылок и аналогичных ситуаций, но в обычном случае, когда один объект «владеет» другим и хочет, чтобы он оставался живым, пока владеющий объект жив (например, данные в NSArray, используемые вашим TableViewController) вам нужна надежная ссылка, точно так же, как вы хотели бы сохранить объект, если используете код не-ARC.