I need to create a class that gets a delegate does some calculation and then calls the delegate.
- Where am i suppose to release the object I allocated?
- Is it possible to init the MyClass
object without allocating it, so
that way I don’t have to release it. -
What is the best practice to do such
a thing? (I am trying to create a
web service class which reads data,
and as soon as it’s done it sends
back the data to the delegate and it
destroys itself)?-(void)viewDidLoad {
MyClass *class = [[MyClass alloc] initWithDelegate:self];
}-(void) MyClassRespond :(NSData*)data {
//use data and populate on screen
}
The class can’t destroy itself, and you can’t init a class object without allocating it (one of the issues being where exactly do the fields get stored without some stuff.
I am not sure why it needs to destroy itself, but the usual method to do this would be to have a variable of type MyClass* _class in the class with the viewDidLoad method. You would then do the equivalent of
You could of course also do something where you pass MyClass back to the delegate method, so something like
In this case your delegate would call MyClassResponds as
It might also make sense to try and make MyClass reusable so you don’t need to dispose it quite as quickly, but I understand there are cases where this doesn’t work.