iPod: Что означает NS_NONATOMIC_IPHONEONLY? Безопасно ли использовать такое свойство на iPod Touch? - PullRequest
3 голосов
/ 28 ноября 2010

Внутри CLLocation Class Reference в разделе свойств это то, что написано для coordinate:

coordinate
The geographical coordinate information. (read-only)

@property(readonly, NS_NONATOMIC_IPHONEONLY) CLLocationCoordinate2D coordinate
Discussion
When running in the simulator, Core Location assigns a fixed set of coordinate values to this property. You must run your application on an iOS-based device to get real location values.

Special Considerations
In iOS, this property is declared as nonatomic. In Mac OS X, it is declared as atomic.

Мне просто любопытно, что это значит: @property(readonly, NS_NONATOMIC_IPHONEONLY). В частности, часть NS_NONATOMIC_IPHONEONLY. Мне кажется, что я могу получить доступ к этому с iPod touch.

Я что-то упустил? Безопасно ли использовать это с iPod touch?

1 Ответ

5 голосов
/ 28 ноября 2010

CoreLocation используется в Mac OS X и iOS (ранее iPhone OS).

Здесь NS_NONATOMIC_IPHONEONLY означает только то, что это свойство является неатомным на iOS и атомарным на Mac OS X. Здесь iPhone относится только к iOS, а не к iPhone против iPod touch.

Это определено в TargetConditionals.h как это.

// Marks APIs whose iPhone versions are nonatomic, that is cannot be set/get from multiple threads safely without additional synchronization
#if !defined(NS_NONATOMIC_IPHONEONLY)
    #if TARGET_OS_IPHONE
    #define NS_NONATOMIC_IPHONEONLY nonatomic
    #else
    #define NS_NONATOMIC_IPHONEONLY
    #endif
#endif
...