2016-08-15 5 views
0

여러 가지 방법으로 시도해 보았습니다. 모든면에서 이미 기존 자산의 위치에서 사용할 수있는 정보 중 일부가 손실 된 것 같습니다.사전에서 CLLocation 개체 채우기

수정 된 저작물을 만들고 해당 저작물과 함께 제공되는 위치 정보를 수정 된 사본에 복사하고 싶습니다. 그러나 CLLocation에서 사용할 수있는 메서드에는 기존 Assets GPS에 사용할 수있는 모든 필드가 없습니다.

 "{GPS}" =    { 
      Altitude = "50.4666666666667"; 
      GPSVersion =     (
       2, 
       3, 
       0, 
       0 
      ); 
      ImgDirection = "265.8132992327366"; 
      ImgDirectionRef = T; 
      Latitude = "58.5314"; 
      LatitudeRef = N; 
      Longitude = "21.5112"; 
      LongitudeRef = W; 
      MapDatum = "WGS-84"; 
      Speed = "2.053334425692282"; 
      SpeedRef = K; 
     }; 
CLLocation에서 사용할 수있는 대부분의 옵션이 방법은

은 다음과 같습니다 : 여기에 기존 자산에서 사용할 것입니다

[loc initWithCoordinate:<#(CLLocationCoordinate2D)#> 
     altitude:<#(CLLocationDistance)#> 
     horizontalAccuracy:<#(CLLocationAccuracy)#> 
     verticalAccuracy:<#(CLLocationAccuracy)#> 
     course:<#(CLLocationDirection)#> 
     speed:<#(CLLocationSpeed)#> 
     timestamp:<#(nonnull NSDate *)#>]; 

난 아직도 잃을 것 'ImgDirectionRef', 'LatitudeRef', 'LongitudeRef' , 'MatDatum', 'GPSVersion'을 호출합니다.

CLLocation이 수정 된 자산으로 정확히 복사되었는지 확인할 수있는 다른 사람이 누구인지 알고 있습니까? 미리 감사드립니다.

답변

0

CLLocation의 일부가 아닌 추가 값을 저장하려면 CLLocation의 하위 클래스가 필요합니다. 예 :

#import <CoreLocation/CoreLocation.h> 
@interface CustomLocation : CLLocation 

@property NSInteger ImgDirectionRef; 
//etc 

@end 

다음

CustomLocation *loc; 
[loc initWithCoordinate:<#(CLLocationCoordinate2D)#> 
    altitude:<#(CLLocationDistance)#> 
    horizontalAccuracy:<#(CLLocationAccuracy)#> 
    verticalAccuracy:<#(CLLocationAccuracy)#> 
    course:<#(CLLocationDirection)#> 
    speed:<#(CLLocationSpeed)#> 
    timestamp:<#(nonnull NSDate *)#>]; 

loc.ImgDirectionRef = 123; // your value here 
// set extra values here