У меня есть объект класса, который я часто использую из разных мест.
Теперь я использую класс следующим образом:
myClass.delegate = self;
[myClass doSomething];
doSomething создает новый объект классаэто вычисляет вещи и может занять до 1 минуты, прежде чем он отправит результат делегату, как это:
-(void)doSomething {
CalculateStuff *calc = [[calculateStuff alloc] init];
calc.delegate = self;
[calc calculate];
}
/* Calculate Delegate */
-(void)didCalculate {
[[self delegate] didDoSomething];
}
Проблема в том, что я из другого места вызываю то же, что и мой последний делегат, иэто вызывает много проблем.
Вопрос:
Есть ли способ отправить делегат как объект, не устанавливая его в качестве свойства?Я написал это так, и XCode предупреждает меня «Неполная реализация MyClass»
[myClass doSomethingWithDelegate:self];
И
-(void)doSomethingWithDelegate:(id)delegate {
CalculateStuff *calc = [[calculateStuff alloc] init];
[calc calculateWithDelegate:delegate];
}
/* Calculate Delegate */
-(void)didCalculateWithDelegate:(id)delegate {
[delegate didDoSomething];
}
РЕДАКТИРОВАТЬ Просто опробовал и этоКажется, работает, но как я могу избавиться от предупреждений в Xcode?