您需要設置委託。讓我證明:
`SVC.h`
@interface SVC
{
id _delegate;
}
- (void)setDelegate:(id)delegate; //sets the delegate
- (id)delegate; //gets the delegate
@end
@protocol SVCDelegate
- (void)sendCoordinates:(SVC *)svc;
@end
然後,在SVC.m
,你打電話委託在完全相同的方式,你在你的問題表明,這樣[[self delegate] sendCoordinates:self];
現在,在FVC
,你需要#import SVC.h
和初始化對象。
SVC*svcObject = [[SVC alloc] init];
[svcObject setDelegate:self]; //self now refers to FVC - I think you're missing this one
//work with the object and when you're done, get rid of it in dealloc:
[svcObject setDelegate:nil];
[svcObject release];
在同一個類中,實現- (void)sendCoordinates:(SVC *)svc
並設置委託後,它會被稱爲。
我想你錯過了setDelegate:
階段,這就是爲什麼它不起作用。
希望它有幫助!
注意:在SVC中,請記住保留該委託,否則它將變爲nil
並且不會調用委託方法。不要忘記一旦完成就釋放該代表。
無論你解釋的是完美的。但這裏的情況有點棘手。要設置委託我必須移動到「FVC」比我只能設置委託。程序計數器現在在「SVC」中。 – Harsh
移動FVC?你是什麼意思? – Pripyat
現在程序計數器(PC)在「SVC」中。我想通過「FVC」中的信息。爲此,我必須設置「FVC」作爲代表。代碼將正常工作。但對於那臺PC必須跳到「FVC」。它將如何發生? – Harsh