Подтвердить что ты не робот

Как преобразовать CFDataRef в NSData?

Как преобразовать CFDataRef в NSData?

У меня есть CFDataRef, и я хочу преобразовать его в NSData. Я не понимаю, как это сделать.

кто-нибудь мне поможет..

    CGDataProviderRef dataProvider = CGImageGetDataProvider(screenShot);
    CFDataRef data = CGDataProviderCopyData(dataProvider);
    CGDataProviderRelease(dataProvider);
    NSString *imagePathLocation = [destinationPath stringByAppendingString:[@"/" stringByAppendingString:DesktopImage]];
    [[NSFileManager defaultManager]createFileAtPath: imagePathLocation contents:nil attributes:nil];
    fileHandleForImage = [NSFileHandle fileHandleForWritingAtPath:imagePathLocation];
    NSData * data1 = (NSData *)data;
    [fileHandleForImage writeData:data1];

Когда я начинаю (NSData * data1 = (NSData *)data), изображение становится поврежденным.

4b9b3361

Ответ 1

Это бесплатное мостовое соединение, поэтому вам просто нужно его бросить.

NSData *myData = (NSData *)myCFDataRef;

Ответ 2

Как сказал @KrisMarkel, вам просто нужно передать право собственности на ARC так:

Как и для передачи права собственности:

NSData* data1 = (__bridge_transfer NSData*) data;

else использовать ссылку без передачи права собственности:

NSData* data2 = (__bridge NSData*) data;