1

我创建了一个这样的宏和一个定义:

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

4

1 回答 1

1

这样做:

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

它们需要先转换为NSNumbers。

于 2014-12-19T22:34:14.877 回答