Я не совсем уверен, что ты здесь делаешь.NSPrint создает экземпляр интерфейса и изменяет свойство одной из его переменных экземпляра.Затем метод заканчивается.
Что вы ожидаете увидеть из этого? У вас нет экземпляра интерфейса, созданного в NSPrint:
, связанного с чем-либо или выполняющего что-либо - вы просто создаетеи оставь его свободным.Чтобы на самом деле получить доступ к экземпляру интерфейса, созданному [Interface new]
, используйте что-то вроде:
+(Interface*)NSPrint:(NSString*)aString
{
Interface* newInterface = [Interface new];
[[[[newInterface textView] textStorage] mutableString] appendFormat:@"%@\n",aString];
return newInterface;
}
В отношении IBOutlet: IBOutlet
не имеет никакого значения, кроме как предупредить конструктор интерфейса XCode о том, что он должен позволить вамсоздавать соединения между переменной объекта контроллера (помеченной IBOutlet) и другим объектом, созданным в конструкторе интерфейса.Затем, когда представление загружается, вызывается метод set переменной объекта контроллера с использованием подключенного объекта в качестве аргумента.Вы получите экземпляр класса контроллера с его переменной экземпляра, установленной на объект, созданный в Интерфейсном Разработчике.
Для получения дополнительной информации об этом см. Руководство Objective-C на веб-сайте Apple: http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html или по информации о построителе интерфейса: http://developer.apple.com/library/mac/#recipes/xcode_help-interface_builder/_index.html#//apple_ref/doc/uid/TP40009971
Если вам нужна переменная класса (то есть переменная, связанная с классом, а не с конкретным экземпляром этого класса), у вас естьпроблема.Взгляните на этот вопрос, чтобы узнать больше об этом: Цель C Статические переменные уровня класса