在Cocoa中,保存图像时出错

时间:2015-10-28 14:41:43

标签: cocoa properties png nsdata

我使用此代码在我缩放后保存图片:

NSData *dataToWrite = [rep representationUsingType:NSPNGFileType  properties:nil];

[dataToWrite writeToFile:finalPath atomically:NO];

它工作正常,但现在使用新的Xcode我收到警告:

  

Null传递给需要非空参数的被调用者

我应该在属性中添加什么而不是nil?

非常感谢您的帮助

2 个答案:

答案 0 :(得分:2)

您需要传递一个NSDictionary,其中包含NSBitmapImageRep.h中找到的字典的可能键(但您可以传入一个空字典)

APPKIT_EXTERN NSString* NSImageCompressionMethod;   // TIFF input/output (NSTIFFCompression in NSNumber)
APPKIT_EXTERN NSString* NSImageCompressionFactor;   // TIFF/JPEG input/output (float in NSNumber)
APPKIT_EXTERN NSString* NSImageDitherTransparency;  // GIF output (BOOL in NSNumber)
APPKIT_EXTERN NSString* NSImageRGBColorTable;       // GIF input/output (packed RGB in NSData)
APPKIT_EXTERN NSString* NSImageInterlaced;      // PNG output (BOOL in NSNumber)
APPKIT_EXTERN NSString* NSImageColorSyncProfileData;    // TIFF,GIF input/output (NSData)
APPKIT_EXTERN NSString* NSImageFrameCount;  // GIF input (int in NSNumber) (read-only)
APPKIT_EXTERN NSString* NSImageCurrentFrame;    // GIF input (int in NSNumber)
APPKIT_EXTERN NSString* NSImageCurrentFrameDuration;    // GIF input (float in NSNumber) (read-only)
APPKIT_EXTERN NSString* NSImageLoopCount            ;   // GIF input (int in NSNumber) (read-only)
APPKIT_EXTERN NSString* NSImageGamma                ;   // PNG input/output (float in NSNumber)
APPKIT_EXTERN NSString* NSImageProgressive          ;   // JPEG input/output (BOOL in NSNumber)
APPKIT_EXTERN NSString* NSImageEXIFData             ;   // JPEG input/output (NSDictionary)
APPKIT_EXTERN NSString* NSImageFallbackBackgroundColor  NS_AVAILABLE_MAC(10_5); // JPEG output (NSColor)

答案 1 :(得分:0)

对于有同样问题的人,我决定创建这个NSDictionary:

NSDictionary * dict = [NSDictionary dictionaryWithObject: [NSNumber numberWithFloat:0.5] forKey:NSImageCompressionFactor];

并且放置" dict"而不是属性中的零。