Я - вполне уверенный VC ++, просто вставляет возврат 0, если Вы не включаете один в основные функции. То же самое может произойти с функциями также, но в тех случаях, по крайней мере, Вы получите предупреждение.
Поскольку CLLocationCoordinate2D
является структурой, не существует такой вещи, как значение nil
. Objective-C инициализирует структуры значением 0, если они являются переменными экземпляра объекта, поэтому, если вы не установите значение для eventLocation
, annotation.coordinate.longitude
и eventLocation. lattitude
оба будут равны 0. Поскольку это допустимое местоположение, это бесполезный маркер.
Я бы определил нефизическое значение:
static const CLLocationDegrees emptyLocation = -1000.0;
static const CLLocationCoordinate2D emptyLocationCoordinate = {emptyLocation, emptyLocation}
, а затем присвоил бы это значение вашему alert.info .eventLocation = EmptyLocationCoordinate
для представления пустого значения. Затем вы можете проверить (alert.info.eventLocation == emptyLocationCoordinate)
.
Я использовал приведенный выше код, за исключением того, что он не позволял мне объявлять константу с другой константой, поэтому я просто изменил ее на:
static const CLLocationDegrees EmptyLocation = -1000.0;
static const CLLocationCoordinate2D EmptyLocationCoordinate = {-1000.0, -1000.0};
Я также добавил в свой init для класса:
eventLocation = EmptyLocationCoordinate;
Спасибо за помощь, Барри.