Если вы перетащите объект в перо, IB создаст и заархивирует этот объект. Вот почему вам не нужно выделять / инициализировать представления, которые вы создаете в IB.
Я предполагаю, что вы создаете свой вид в IB, чтобы вы могли получить правильную геометрию, или ...? Довольно необычно создать представление и затем немедленно заменить его во время выполнения. Для геометрических целей более распространенным является создание представления контейнера в IB, а затем добавление созданных программным способом представлений в качестве подпредставлений этого.
Ваш код не учитывает самую важную часть этого, хотя , когда запускается. Это в -init ...? -awakeFromNib? -loadView? -viewDidLoad? Точное местоположение имеет значение, поскольку они происходят в четко определенной последовательности. Если вы поместите свой код в неправильное место, он запустится до того, как перо будет разархивировано и полностью повторно подключено, поэтому перо сработает, что бы ни делал ваш код.
Итак: когда ваш код [self setGraph] (я не могу заставить себя использовать точечный синтаксис) запускается?