デリゲートメソッドを起動するのに問題があります。それはARCに関係している場合はそう思って、他のプロジェクトのために正常に動作するために使用しますデリゲートメソッドは起動しません(null)。 ARCの使用
@class Location;
@protocol LocationDelegate
- (void)location:(Location*)location foundLocation:(CLLocation*)location;
- (void)location:(Location*)location failedToLocateUserWithError:(NSError*)error;
@end
@interface Location : NSObject {
__unsafe_unretained id <LocationDelegate> delegate;
}
@property (nonatomic, assign) id <LocationDelegate> delegate;
@end
...
@implementation Location
@synthesize delegate;
- (void)startUpdatingLocation {
NSLog(@"%@", delegate); // prints '(null)'
...
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
NSLog(@"%@", delegate); // prints '(null)'
[delegate location:self foundLocation:newLocation];
}
@end
:私は、次のコードを持っていますか? Location
を割り当てるオブジェクトはLocationDelegate
に従います。私はまた、代議員を自己に設定しています。しかし、デリゲートメソッドはただ発射していないので、出力すればnullです。あなたがここに貼り付けてきたばかりのコードから
おかげ
私は(非原子的、強)に変更しようとしましたが、unsafe_unretainedはありません。 – runmad
象牙を取り除く。デリゲートを参照している行(この例のように、 '[delegate location ....')では、代わりに 'self.delegate'を使います。 – Steve
まだ何も/ null – runmad