Класс не может уничтожить себя, и вы не можете инициировать объект класса, не выделяя его (одна из проблем заключается в том, где именно поля хранятся без каких-либо вещей.
Я не уверен, зачем ему нужно уничтожать себя, но обычным методом для этого было бы иметь переменную типа MyClass * _class в классе с методом viewDidLoad. Затем вы должны сделать эквивалент
-(void)viewDidLoad { _class = [[MyClass alloc] initWithDelegate:self]; }
-(void) MyClassRespond :(NSData*)data {
[_class release];
//use data and populate on screen }
Конечно, вы также можете сделать что-нибудь, когда вы передадите MyClass методу делегата, например,
-(void)viewDidLoad {MyClass *class = [[MyClass alloc] initWithDelegate:self]; }
-(void) MyClassRespond :(NSData*)data fromClass: (MyClass*)class {
[class release];
//use data and populate on screen }
В этом случае ваш делегат вызовет MyClassResponds как
[delegate MyClassRespond:data fromClass:self];
Возможно, имеет смысл попытаться сделать MyClass повторно используемым, поэтому вам не нужно утилизировать его так же быстро, но я понимаю, что есть случаи, когда это не работает.