2009-08-28 3 views
0

В iPhone SDK мы можем наблюдать только объекты, а не стойки, такие как CLLocationCoordinate2D?Наблюдение CLLocationCoordinate2D в iphone SDK

Пример: У меня есть очень простой код, где я хотел бы наблюдать свойство типа CLLocationCoordinate2D, я убедился в его синтезе в ABC.m.

@interface ABC 
{ 
CLLocationCoordinate2D currentLocation; 
} 
@property (nonatomic, readwrite) CLLocationCoordinate2D currentLocation; 

Теперь в другом классе я:

[ABC addObserver:self forKeyPath:@"currentLocation" options:NSKeyValueObservingOptionNew context:NULL]; 

По какой-то причине, метод observeValueForKeyPath никогда не сообщает, что Ключевой путь "currentLocation" изменилось.

Спасибо,

SJS

ответ

0

Является ли это буквальное вызов, который вы делаете?

[ABC addObserver:self forKeyPath:@"currentLocation" options:NSKeyValueObservingOptionNew context:NULL]; 

Если это так, я думаю, проблема в том, что вы наблюдаете класс ABC, а не экземпляр класса ABC. Предполагая, что у вас есть экземпляр класса ABC, попробуйте это наблюдать.

ABC* myObject = [ [ [ ABC alloc ] init ] autorelease ]; 
[ myObject addObserver: self forKeyPath: @"currentLocation" options: NSKeyValueObservingOptionNew context: NULL ]; 
Смежные вопросы