我已经创建了一个这样的宏,还有一个定义:
#define CustomImageOptions NSDictionary
typedef NS_ENUM(NSInteger, CustomImageOption) {
CustomImageOptionResize, // CGSize
CustomImageOptionQuality, // CGFloat
CustomImageOptionType // NSString (JPEG or PNG)
};
我有这样的方法:
- (UIImage*)imageModifiedWithOptions:(CustomImageOptions*)options;
我希望将选项字典传递给它(伪代码):
[self imageModifiedWithOptions:@{CustomImageOptionResize: CGSizeMake(10, 20), CustomImageQuality: 0.9}];
它不会编译,大概是因为我的宏是NSInteger类型,它不能枚举为NSDictionary的键。
如何实现这一点,以便我可以将NSDictionary选项传递给我的方法?
答案 0 :(得分:1)
这样做:
[self imageModifiedWithOptions:@{@(CustomImageOptionResize): CGSizeMake(10, 20), @(CustomImageQuality): 0.9}];
首先需要将它们转换为NSNumber
。