2014-10-10 4 views
0

저는이 새로운 구문을 이해하기 위해 현재 여러 가지 Swift 클래스를 온라인으로 사용하고 있습니다. 그러나 실제로 파악할 수없는 벽을 뚫은 것처럼 느껴집니다.Swift에서 Custom Objective 메서드를 호출 하시겠습니까?

내 질문은 : 신속한 내부에서 사용자 지정 목표 메서드를 호출하려면 어떻게해야합니까? 왜 코드가 어디에서 왔는지 신속하게 인식하지 못합니까? "UIViewController에 'customMethod'라는 멤버가 없다는 오류가 발생하는 이유는 무엇입니까? 수입 문제입니까? 그런 다음

- (void)configureMyApp 
{ 
// overriden by subclasses 
}  

이 하나 내가 묻고 배경

있어 왜 내 질문을 알고 이제

, 여기에 나는이 방법을 호출하는 목표는 -c하는 .m 파일이 있습니다 :

- (void)addAppElement:(MyAppElement *)element 
{ 
    [self addAppElement atIndex:[self.elements count]]; 
} 

내 신속한 응용 프로그램에서 나는 브리지 헤더를 설정 한 및 상기 헤더 파일

을에 .H 파일을 가져 오기

나는이 빠른 기능을 통해 configureMyApp 메소드를 호출 시도 :

func configureMyApp() 
{ 

self.addAppElement... 
} 

하지만 내 수입 목표 C 파일에서 들어오는 그 기능을 인식하지 않으며, 어느 쪽도 인식하지 myswiftfile.swift 않습니다 addAppElement

obj-c로 호출하는 방법은 다음과 같습니다.

- (void)configureMyApp 
{ 
[super configureMyApp]; 

[self addAppElement:.....]; 
} 

obj-c 코드를 가져 오려면 다른 작업이 필요합니까? 나는 무엇을 놓칠 수 있 었는가?

+1

브리징 헤더가 올바르게 구성 되었습니까? [Cocoa 및 Objective-C와 함께 Swift 사용 : 동일한 프로젝트에서 신속하고 객관적인 -C] (https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//)를 참조하십시오. apple_ref/doc/uid/TP40014216-CH10-XID_76). – Rob

+1

ViewController.h 파일에 이러한 메서드를 추가 했습니까? – ujell

+0

예 이러한 메서드는 내 ViewController.h 파일에 있으며 브리징 헤더가 필요한 코드 스 니펫을 이미 사용하고 있으므로 브리징 헤더가 올바르게 구성되어 있다고 확신합니다. – YichenBman

답변

1

이 오류 : UIViewController does not have a member named 'customMethod'UIViewController의 사용자 지정 하위 클래스가 아닌 UIViewController으로 입력 된 개체에 customMethod을 호출하려고한다는 것을 나타냅니다.

+1

트릭을 수행 한 것입니다! 하위 클래스를 변경해야한다는 사실을 잊어 버렸습니다. – YichenBman

관련 문제