私はPSPDFkitのサンプルコードを見ていましたが、これを見ました:
NSDictionary *options = @{kPSPDFProcessorAnnotationTypes :
@(PSPDFAnnotationTypeNone & ~PSPDFAnnotationTypeLink)
};
定数PSPDFAnnotationTypeNone
とPSPDFAnnotationTypeLink
は以下に定義されています。
// Available keys for options. kPSPDFProcessorAnnotationDict in
// form of pageIndex -> annotations.
// ..
extern NSString *const kPSPDFProcessorAnnotationTypes;
// Annotations defined after the PDF standard.
typedef NS_OPTIONS(NSUInteger, PSPDFAnnotationType) {
PSPDFAnnotationTypeNone = 0,
PSPDFAnnotationTypeLink = 1 << 1, // Links and multimedia extensions
PSPDFAnnotationTypeHighlight = 1 << 2, // (Highlight, Underline, StrikeOut) -
PSPDFAnnotationTypeText = 1 << 3, // FreeText
PSPDFAnnotationTypeInk = 1 << 4,
PSPDFAnnotationTypeShape = 1 << 5, // Square, Circle
PSPDFAnnotationTypeLine = 1 << 6,
PSPDFAnnotationTypeNote = 1 << 7,
PSPDFAnnotationTypeStamp = 1 << 8,
PSPDFAnnotationTypeRichMedia = 1 << 10, // Embedded PDF videos
PSPDFAnnotationTypeScreen = 1 << 11, // Embedded PDF videos
PSPDFAnnotationTypeUndefined = 1 << 31, // any annotation whose type not recognized
PSPDFAnnotationTypeAll = UINT_MAX
};
~
ビット単位の not 演算子とビット単位の and 演算子であることは理解して&
いますが、このコードでそれらを適用する目的は何ですか?
NSDictionary *options = @{kPSPDFProcessorAnnotationTypes :
@(PSPDFAnnotationTypeNone & ~PSPDFAnnotationTypeLink)
};
以下のコメントに基づいて、上記は次のように簡単に記述できます。
NSDictionary *options = @{kPSPDFProcessorAnnotationTypes :@(PSPDFAnnotationTypeNone)};
と同じですから(0 & ~2) => 0
。& ~PSPDFAnnotationTypeLink
パーツを追加するポイントは何ですか?