Почему значение свойства "возможности" объекта CKRecordZone равно 7?

В моем приложении для iOS я создал пользовательскую зону, а затем извлек ее с помощью CKFetchRecordOperation. После этого я позволил консоли вывести значение свойства "functions" извлеченного CKRecordZone. Значение равно 7. Как это может быть?

Согласно документации, значение имеет тип перечисления CKRecordZoneCapabilities, который имеет только значение 1 << 0 и значение 1 << 1. Итак, я не знаю, почему значение может быть 7.

1 ответ

Согласно источнику iOS 10 SDK (CKRecordZone.h), возможности следующие:

typedef NS_OPTIONS(NSUInteger, CKRecordZoneCapabilities) {
    /* This zone supports CKFetchRecordChangesOperation */
    CKRecordZoneCapabilityFetchChanges   = 1 << 0,
    /* Batched changes to this zone happen atomically */
    CKRecordZoneCapabilityAtomic         = 1 << 1,
    /* Records in this zone can be shared */
    CKRecordZoneCapabilitySharing        NS_AVAILABLE(10_12, 10_0) = 1 << 2,
} NS_AVAILABLE(10_10, 8_0);

Таким образом, значение "7" кажется вполне приемлемым (1 + 2 + 4). Ваша зона обладает всеми доступными возможностями.

Другие вопросы по тегам