Я думаю, что вам может понадобиться шаблон синглтона / общего доступа, который позволяет любому коду обращаться к конкретному экземпляру класса, не передавая этот экземпляр.
Эта модельиспользуется во всем какао.Например, NSFileManager
имеет метод класса defaultManager
, который возвращает общий экземпляр класса.Вы вызываете метод экземпляра для этого общего экземпляра, сначала вызывая defaultManager
, поэтому, например, для вызова метода экземпляра isDeletableFileAtPath
вы пишете:
[[NSFileManager defaultManager] isDeletableFileAtPath:path]
В вашем случае ваш DoThis
становится:
+ (void) DoThis
{
EvDudeClass *shared = [EvDudeClass sharedInstance];
[shared.textView setString:@"qwertyasdfzxcvb."];
[shared.textView setNeedsDisplay:YES];
}
И вам нужно добавить метод sharedInstance
в ваш класс.Есть несколько способов сделать это в зависимости от того, как вы хотите использовать свой класс - это одиночка?Вам просто нужен один общий экземпляр и другие не общие?Вы просто хотите поделиться экземпляром, созданным в NIB?Как вы упоминаете IBOutlet
, здесь есть реализация, которая выполняет последнее:
static EvDudeClass *privateSharedInstance = nil;
- (void) awakeFromNib
{
privateSharedInstance = self; // save this instance so it can be shared
// other init stuff
}
+ (EvDueClass *)sharedInstance { return privateSharedInstance; }