私はこれに関する他のほとんどすべての投稿を見てきましたが、私はそれを得ることができないようです。私はiOSとObjective-Cを初めて使用し、Objective-CとiOSの両方のBigNerdRanchガイドに従っています。彼らのサイトで私が見つけた課題の1つは、単純なCoreLocationアプリを作成することです。コードをクラスに分割して、後で再利用できるようにしようとしています。
ViewController.mファイルのボタンを取得して、MyLocationクラスであるMyLocation.mファイルのlocationManagerを呼び出したいと思います。NSNotificaitonを調べましたが、それも正しく機能しませんでした。
私は一生の間、自分が何を見逃しているのか、何を間違っているのかを理解することはできません。質問が単純であることをお詫び申し上げます。できるだけ多くの基本を学ぼうとしています。
以下は私のファイルです:
ViewController.h:
#import <UIKit/UIKit.h>
#import "MyLocation.h"
@interface ViewController : UIViewController
- (IBAction)GetLocation:(id)sender;
@property (weak, nonatomic) IBOutlet UILabel *LocationOutput;
@end
ViewController.m:
#import "ViewController.h"
#import "MyLocation.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize LocationOutput;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)viewDidUnload
{
[self setLocationOutput:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (IBAction)GetLocation:(id)sender {
//WHAT GOES HERE?
}
@end
MyLocation.h:
#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>
@class MyLocation;
@protocol MyLocationDelegate <NSObject>;
@end
@interface MyLocation : NSObject <CLLocationManagerDelegate>
@property (nonatomic, strong) CLLocationManager *locationManager;
@end
MyLocation.m:
#import "MyLocation.h"
@implementation MyLocation
@synthesize locationManager = _locationManager;
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog(@"Latitude is: %f", newLocation.coordinate.latitude);
}
@end
ラベルにはまだ何も出力していないことはわかっていますが、NSLogを実行しています。
助けてくれてありがとう。ほんとうにありがとう。