OC-NSData 학습 노트

7279 단어 ios
NSData는 바이트 배열을 저장하는 데 사용됩니다.초기화
- (instancetype)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b; 

객체를 초기화합니다.바이트 그룹 복사 작업을 하지 않고 바이트 포인터를bytes로 직접 설정하고 길이는length입니다.
- (instancetype)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length; 

객체를 초기화합니다.바이트 그룹 복사 작업을 하지 않고 바이트 포인터를bytes로 직접 설정하고 길이는length입니다.
- (instancetype)initWithBytes:(nullable const void *)bytes length:(NSUInteger)length;

     。 
      ,               ,   length。

- (nullable instancetype)initWithContentsOfFile:(NSString *)path;

           。 
         ,       nil。

- (nullable instancetype)initWithContentsOfFile:(NSString *)path options:(NSDataReadingOptions)readOptionsMask error:(NSError **)errorPtr;

           。 
         。       nil,       errorPtr 。 
  readOptionsMask         。 
typedef NS_OPTIONS(NSUInteger, NSDataReadingOptions) {
    NSDataReadingMappedIfSafe =   1UL << 0, 
    NSDataReadingUncached = 1UL << 1,   
    NSDataReadingMappedAlways  = 1UL << 3,

    NSDataReadingMapped = NSDataReadingMappedIfSafe,
    NSMappedRead = NSDataReadingMapped,
    NSUncachedRead = NSDataReadingUncached
};

- (nullable instancetype)initWithContentsOfURL:(NSURL *)url; 

url 내용 초기화 대상을 읽습니다.읽기에 성공하면 대상을 되돌려주고, 실패하면 nil을 되돌려줍니다.
- (nullable instancetype)initWithContentsOfURL:(NSURL *)url options:(NSDataReadingOptions)readOptionsMask error:(NSError **)errorPtr;

  url       。 
         。       nil,       errorPtr 。 
  readOptionsMask         。

- (instancetype)initWithData:(NSData *)data;

  NSData       。

- (nullable id)initWithContentsOfMappedFile:(NSString *)path 

파일 내용에 따라 대상을 초기화합니다.파일 내용을 읽는 방식은read시스템 호출이 아니라 mmap시스템 호출입니다.
구조
+ (instancetype)data;

    NSData  。

+ (instancetype)dataWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)b;

          。       。

+ (instancetype)dataWithBytesNoCopy:(void *)bytes length:(NSUInteger)length;

          。       。

+ (instancetype)dataWithBytes:(nullable const void *)bytes length:(NSUInteger)length;

          。      。

 + (nullable instancetype)dataWithContentsOfFile:(NSString *)path;

          。

+ (nullable instancetype)dataWithContentsOfFile:(NSString *)path options:(NSDataReadingOptions)readOptionsMask error:(NSError **)errorPtr;

          。

 + (nullable instancetype)dataWithContentsOfURL:(NSURL *)url;

  url      。

+ (nullable instancetype)dataWithContentsOfURL:(NSURL *)url options:(NSDataReadingOptions)readOptionsMask error:(NSError **)errorPtr;

  url      。

+ (instancetype)dataWithData:(NSData *)data;

  NSData      。

+ (nullable id)dataWithContentsOfMappedFile:(NSString *)path

          。           read    ,  mmap    。 

반환 길이
@property (readonly) NSUInteger length;

    

@property (readonly) const void *bytes

        

- (void)getBytes:(void *)buffer range:(NSRange)range;

  buffer       ,  range         。

- (void)getBytes:(void *)buffer length:(NSUInteger)length;

         。  length      ,             。

- (void)getBytes:(void *)buffer

      。

    

- (NSData *)subdataWithRange:(NSRange)range;

  range      。

    

- (BOOL)isEqualToData:(NSData *)other;

        。 

파일 쓰기
- (BOOL)writeToFile:(NSString *)path options:(NSDataWritingOptions)writeOptionsMask error:(NSError **)errorPtr;

  path      。  errorPtr            。  writeOptionsMask            ,         。     

typedef NS_OPTIONS(NSUInteger, NSDataWritingOptions) {
NSDataWritingAtomic = 1UL << 0, 
NSDataWritingWithoutOverwriting NS_ENUM_AVAILABLE(10_8, 6_0) = 1UL << 1, 

NSDataWritingFileProtectionNone NS_ENUM_AVAILABLE_IOS(4_0)  = 0x10000000,
NSDataWritingFileProtectionComplete NS_ENUM_AVAILABLE_IOS(4_0)  = 0x20000000,
NSDataWritingFileProtectionCompleteUnlessOpen NS_ENUM_AVAILABLE_IOS(5_0)  = 0x30000000,
NSDataWritingFileProtectionCompleteUntilFirstUserAuthentication NS_ENUM_AVAILABLE_IOS(5_0)  = 0x40000000,
NSDataWritingFileProtectionMask NS_ENUM_AVAILABLE_IOS(4_0)  = 0xf0000000,
NSAtomicWrite = NSDataWritingAtomic     
};

NSDataWritingAtomic               。 
NSDataWritingWithoutOverwriting           ,   NSDataWritingAtomic     。

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;

    。  path      ,  useAuxiliaryFile            。

  url

- (BOOL)writeToURL:(NSURL *)url options:(NSDataWritingOptions)writeOptionsMask error:(NSError **)errorPtr;

  path  url  。  errorPtr            。  writeOptionsMask          ,         。

- (BOOL)writeToURL:(NSURL *)url atomically:(BOOL)atomically;

  url。  path      ,  atomically      。

  

- (NSRange)rangeOfData:(NSData *)dataToFind options:(NSDataSearchOptions)mask range:(NSRange)searchRange

    。  dataToFind      。  searchRange      。  mask       。             。 
     :

typedef NS_OPTIONS(NSUInteger, NSDataSearchOptions) {
    NSDataSearchBackwards = 1UL << 0,
    NSDataSearchAnchored = 1UL << 1
}

NSDataSearchBackwards        。 
NSDataSearchAnchored           ( NSDataSearchBackwards  )。

 Base64    

- (nullable instancetype)initWithBase64EncodedString:(NSString *)base64String options:(NSDataBase64DecodingOptions)options
1
     。options     。

typedef NS_OPTIONS(NSUInteger, NSDataBase64DecodingOptions) {
    NSDataBase64DecodingIgnoreUnknownCharacters = 1UL << 0
} NS_ENUM_AVAILABLE(10_9, 7_0);

NSDataBase64DecodingIgnoreUnknownCharacters           。

- (NSString *)base64EncodedStringWithOptions:(NSDataBase64EncodingOptions)options
      。  options     。

typedef NS_OPTIONS(NSUInteger, NSDataBase64EncodingOptions) {
    NSDataBase64Encoding64CharacterLineLength = 1UL << 0,
    NSDataBase64Encoding76CharacterLineLength = 1UL << 1,
    NSDataBase64EncodingEndLineWithCarriageReturn = 1UL << 4,
    NSDataBase64EncodingEndLineWithLineFeed = 1UL << 5,

} NS_ENUM_AVAILABLE(10_9, 7_0);

- (nullable instancetype)initWithBase64EncodedData:(NSData *)base64Data options:(NSDataBase64DecodingOptions)options

    。

- (NSData *)base64EncodedDataWithOptions:(NSDataBase64EncodingOptions)options
    。

- (nullable id)initWithBase64Encoding:(NSString *)base64String

     。

- (NSString *)base64Encoding

      。

NSMutableData          。
    

@property (readonly) void *mutableBytes

    

@property NSUInteger length;

   

- (nullable instancetype)initWithCapacity:(NSUInteger)capacity;

           。

- (nullable instancetype)initWithLength:(NSUInteger)length;

         。       0。

  

 + (nullable instancetype)dataWithCapacity:(NSUInteger)aNumItems;

          。

 + (nullable instancetype)dataWithLength:(NSUInteger)length;

        。

  

- (void)appendBytes:(const void *)bytes length:(NSUInteger)length;

    。

- (void)appendData:(NSData *)other;

    。

  

- (void)replaceBytesInRange:(NSRange)range withBytes:(const void *)bytes;

      。

- (void)replaceBytesInRange:(NSRange)range withBytes:(nullable const void *)replacementBytes length:(NSUInteger)replacementLength;

      。  replacementLength         。

    

- (void)increaseLengthBy:(NSUInteger)extraLength;

  

- (void)resetBytesInRange:(NSRange)range;

        0。

  

- (void)setData:(NSData *)data; 

좋은 웹페이지 즐겨찾기