Ответ 1
Это бесплатное мостовое соединение, поэтому вам просто нужно его бросить.
NSData *myData = (NSData *)myCFDataRef;
Как преобразовать 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
), изображение становится поврежденным.
Это бесплатное мостовое соединение, поэтому вам просто нужно его бросить.
NSData *myData = (NSData *)myCFDataRef;
Как сказал @KrisMarkel, вам просто нужно передать право собственности на ARC так:
Как и для передачи права собственности:
NSData* data1 = (__bridge_transfer NSData*) data;
else использовать ссылку без передачи права собственности:
NSData* data2 = (__bridge NSData*) data;