2010-01-28 7 views
0

나는 이것이 꽤 잘 된 일이라는 것을 알고 있지만, 나는 아직도 그것을 해결할 수 없다.objective-c (iphone sdk) 별개의 클래스에서 인스턴스 인스턴스 메소드

Jobs.m에 saveAllDataJobs라는 인스턴스 메소드가 있습니다.

- (void) saveAllDataJobs { ... } 

내가 DetailViewController.m에 있는데 Jobs.m에있는 saveAllDataJobs 메소드를 실행하려고합니다. 이 코드를 실행하려면 정확히 무엇이 필요합니까?

반복 질문을 드려 죄송합니다. 해결할 수 없습니다.

감사

+0

Jobs 클래스의 인스턴스 그런 다음 [jobs saveAllDataJobs]; – yehnan

+0

아니, 맞지 않아. 클래스 메소드 (+)에 대한 것이지 인스턴스 메소드 (-)에 대한 것이 아닙니다. 나는 한 줄 이상을 찾고 있었다. – oberbaum

답변

1

"위임" 문서를 읽으십시오. 그런 다음

@interface DetailViewController { 
    id delegate; 
} 

@property (assign) delegate; 
@end 

@implementation DetailViewController 

@synthesize delegate; 

@end 

: 당신이 DetailViewController를 만들 때

, 당신은 그에게 바르 제공 : 다음은 그 기본이다

나중에
DetailViewController *controller = [[DetailViewController alloc] initWithNibName...] 
controller.delegate = jobs; // "jobs" is of class Jobs, instantiated somewhere else 

, 당신은 detailViewController 내부 작업에 대한 몇 가지 메소드를 호출 할 필요가있을 때, 너 do

if ([self.delegate respondsToSelector:@selector(saveAllDataJobs)]) { 
    [self.delegate saveAllDataJobs]; 
} 

이 문제에 대한 자세한 내용은 있지만 기본 patte입니다. rn.

+0

일부 암호 해독이 필요합니다. 지금까지 도와 줘서 고마워. 이제 그걸 알아 내야 해. – oberbaum

+0

기본 개념은 다음과 같습니다. "컨트롤러"개체를 만드는 사람은 "작업"개체에 대한 참조를 제공하므로 "컨트롤러"는 "작업"에서 메서드를 호출하는 방법을 알고 있습니다. – Jaanus

0

전화 [someJobsInstance saveAllDataJobs]와 방법은?

귀하의 질문에 대한 대답이 아니시면, 성취하려는 것을 더 설명해야합니다. 이 메소드가 메소드를 호출하는 것보다 애플리케이션 아키텍처에 대한 것임을 알게되었습니다.

+0

someJobsInstance 비트를 설명 할 수 있습니까? 그것이 내가 문제가되는 것입니다. OTherwise 더 정교한 코드를 게시 할 수 있습니다. – oberbaum

+0

더 많은 코드를 붙여 넣으십시오. –

관련 문제