2017-03-05 19 views
0

私の最初の試みは少し荒いが開始されます。エラーwatchOSアプリを構築するにWatchkit拡張の際

ファイルインスペクタ内のターゲットメンバシップボックスでwatchkit拡張を選択した後、すぐに私のCLLocationManager Delegateクラスに関するいくつかのエラーがポップアップして、なぜこれが当てはまるのかわからなくて、これらの回答を追跡する方法がわからない問題。それは、時計用ですので

iOSとwatchOSから共有可能なコードに統合することが許可されているものに特別な制限がありますか?

特にアクティビティタイプが使用不能になり、なぜわかりません。

import Foundation 
import CoreLocation 
import MapKit 
import UIKit 

class TrackLocationManagerDelegate: NSObject, CLLocationManagerDelegate { 
     lazy var locationManager: CLLocationManager = { 
      var locationManager   = CLLocationManager() 
     locationManager.delegate  = LocationManagerDelegate.sharedInstance 
     locationManager.desiredAccuracy = kCLLocationAccuracyBest 

     // ERROR - activityType unavailable 
     locationManager.activityType = CLActivityType.fitness 

     locationManager.distanceFilter = 10.0 

     return locationManager 
     }() 

    // ERROR - Use of undeclared type MKPolyline 
    fileprivate lazy var polyline = MKPolyline() 

    // ERROR - Use of Undeclared type UIViewController 
    func startUpdatingLocationIfAuthorized(inViewController vc: UIViewController) { 
     guard CLLocationManager.authorizationStatus() == .authorizedWhenInUse else { 
      TrackLocationManagerDelegate.sharedInstance.locationManager.requestWhenInUseAuthorization() 
      return 
     } 

     TrackLocationManagerDelegate.sharedInstance.locationManager.startUpdatingLocation() 
    } 
} 

答えて

1

、慎重CoreLocationMapKitフレームワークのドキュメントを読んでください。 watchOSではすべてのシンボルを使用できるわけではありません。たとえば、MKPolylineは、iOS 4.0以降、MacOS 10.9以降、tvOS 9.2以降で利用できますが、watchOSでは使用できません。

また、アップルウォッチにUIViewController全体UIKitを使用することはできません。 WKInterfaceControllerなど、WatchKitのUIクラスを使用してください。さらに学習で

幸運!

+0

ありがとうございました、ドキュメントを通って、私の質問にすべて答えました! – lifewithelliott

関連する問題