typedef NS_ENUM:将自定义属性的NSDictionary传递给方法

时间:2014-12-19 22:16:26

标签: ios objective-c nsenumerator

我已经创建了一个这样的宏,还有一个定义:

#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选项传递给我的方法?

1 个答案:

答案 0 :(得分:1)

这样做:

[self imageModifiedWithOptions:@{@(CustomImageOptionResize): CGSizeMake(10, 20), @(CustomImageQuality): 0.9}];

首先需要将它们转换为NSNumber