이 프로그램에서 많이 수행 한 간단한 작업을 수행하려고합니다. 일단 앱이 실행을 끝내고 업데이트가 발생하면 현재 위치를 얻으려면 CLLocationManager를 시작하려고합니다. 내 응용 프로그램은 현재 위치를 얻는다는 점에서 작동합니다. NSLog는 현재 위치가 정상적으로 작동 할 때입니다. 문제는 하나의 객체에서 다른 객체로이 위치를 전달하려고 시도하고 거기에 도달하면 값을 가지지 않는다는 것입니다.Getter Accessor가 작동하지 않습니다. iphone SDK 목표 C
나는 접근 자 메서드를 찾고 있었고 모든 것이 내 프로그램에서 이러한 유형의 연산을 가지고있는 것처럼 보입니다. 나는 많은 예제를 따르려고했지만 아무도 작동하지 않는 것 같습니다.
다음은 몇 가지 코드입니다.
이것은 CLLocationManagerDelegate의 .h 파일입니다.
@interface YogaAllianceAppDelegate : NSObject <UIApplicationDelegate,CLLocationManagerDelegate> {
CLLocationManager *locationManager;
CLLocation *mycurrentLocation;
float curLats;
float curLons;
BOOL locationDidUpdate;
UIWindow *window;
YogaAllianceViewController *viewController;
}
@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) CLLocationManager *locationManager;
@property (nonatomic, assign) float curLats;
@property (nonatomic, assign) float curLons;
@property (nonatomic, assign) CLLocation *mycurrentLocation;
@property (nonatomic, retain) IBOutlet YogaAllianceViewController *viewController;
@end
이
는 작동이 시점에서하는 .m 파일@synthesize viewController, locationManager, curLats, curLons, mycurrentLocation;
- (void)applicationDidFinishLaunching:(UIApplication *)application {
self.locationManager = [[[CLLocationManager alloc]init] autorelease];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate = self;
[locationManager startUpdatingLocation];
locationDidUpdate = NO;
[window addSubview:viewController.view];
[window makeKeyAndVisible];
}
-(void)locationManager: (CLLocationManager *)manager
didUpdateToLocation: (CLLocation *)newLocation
fromLocation: (CLLocation *)oldLocation{
[[NSNotificationCenter defaultCenter]
postNotificationName:@"currentLocationDidUpdate" object: self];
[locationManager stopUpdatingLocation];
NSLog(@"Core Location says location available");
self.curLats = newLocation.coordinate.latitude;
self.curLons = newLocation.coordinate.longitude;
self.mycurrentLocation = newLocation;
NSLog(@"current position is then %@", [mycurrentLocation description]);
}
입니다. 나는 위치를 인쇄하고 모든 것을 인쇄 할 수 있지만 다른 객체에 그 위치가 필요하며 점 표기법을 다시 작성하는 모든 시도가 실패한 것 같습니다. 여기 있습니다. 객체의 시간 나는 그것을해야합니다. 여기
@interface School_Location_List_Controller : UIViewController {
CLLocation* currentLocation;
}
- (IBAction) btnBack_Clicked:(id)sender;
@property (nonatomic, assign) CLLocation* currentLocation;
그리고를하는 .m
@implementation School_Location_List_Controller
@synthesize destinations, closeSchools, currentLocation;
-(void) viewWillAppear: (BOOL)animated {
NSLog (@"Registered for location events");
YogaAllianceAppDelegate *updated = [[YogaAllianceAppDelegate alloc]init];
currentLocation = updated.mycurrentLocation ;
NSLog(@"current position here in the passed object is %@", [currentLocation description]);
[super viewWillAppear:animated];
}
그것은 내가 혼란 스러워요이 점에에게 있습니다. 내가 그것을 인쇄 할 때, 그것은 단지 currentLocation이 Null이라고 말한다. 그것 같이 데이터를 결코 얻지 않았다.
당신을 미리 감사하십시오. 여기
YogaAllianceAppDelegate *updated = [[YogaAllianceAppDelegate alloc]init];
, 당신은 할당하고 새로운 개체, 응용 프로그램의 기존 위임에서 완전히 구별되는 하나를 초기화하고 있습니다 :
죄송합니다. 나는 심지어 그것을 붙 잡지 않았다! –
DAVE !!!! 나는 너를 충분히 고마워 할 수 없다. 나는이 모든 것을 처음 접했고, 그 일에 대해 내 머리를 고문 해왔다. 그것의 항상 간단한 일. 고마워요. – Makinitez21