2014-11-24 4 views
2

어제 watchkit hackathon에 참석했으며 Google Maps API를 사용하고 로컬 알림을 보내는 NSObject 클래스에서 메소드를 호출하는 것과 관련하여 몇 가지 문제가있었습니다. 내 Watchkit 확장에서이 메서드를 호출 할 경우 코드는 컴파일되지 않습니다,하지만 난의 ViewController에서 호출하는 경우, 예를 들어, 모든Watchkit에 대한 메소드 호출

#import "InterfaceController.h" 
#import "Methods.h" 

@interface InterfaceController() 

@end 


@implementation InterfaceController 

- (instancetype)initWithContext:(id)context { 
self = [super initWithContext:context]; 
if (self){ 
    // Initialize variables here. 
    // Configure interface objects here. 
    NSLog(@"%@ initWithContext", self); 

} 
return self; 
} 
- (IBAction)butRoute 
{ 
    Methods *mt = [[Methods alloc]init]; 
    [mt notif:@"ARRIVING!"]; 
    //***** If I call this method, my code won't compile!!! ***** 

} 

- (void)willActivate { 
// This method is called when watch view controller is about to be visible to user 
NSLog(@"%@ will activate", self); 
} 

- (void)didDeactivate { 
// This method is called when watch view controller is no longer visible 
NSLog(@"%@ did deactivate", self); 
} 

@end 

완벽하게 작동 내가 오류는 다음과 같습니다 Error

+0

혹시 이것을 알아 냈습니까? – you786

답변

8

대상 클래스에서 Methods 클래스를 확인하고 시계 클래스 확장 타겟에 있는지 확인하십시오.

enter image description here

다른 방법으로는, 공유 수업을위한 프레임 워크를 구축 봐. https://developer.apple.com/videos/wwdc/2014/?id=416

+0

같은 일이 일어났습니다. 내가 보낸 링크가 ​​보일거야 / –

1

사용중인 xcode 버전을 모르지만 initWithContext 메소드가 더 이상 유효하지 않다는 점을 고려하십시오. 다음을 사용해야합니다 :

그리고 덮어 쓰지 말고 그냥 사용하십시오.

0

#import 줄을 제거하고 WatchKit 프레임 워크로 바꿉니다.