iOS How to save a selector(non-object) into an array

我们只能将Object保存到collection中(array, dictionary, set…)
今天遇到一个情况我希望把一个selector(一个pointer)保存起来,封装成key-value的形式以备后用.
搜了一下,方法大概两种,这里记录一下.

1. 保存成NSString

SEL aSelector;
// selector -> NSString
NSString *selectorString = NSStringFromSelector(aSelector);

// NSString -> selector
SEL anotherSelector = NSSelectorFromString(selectorString);

2. 保存成NSValue

// selector -> NSValue
NSValue* mySelectorValue = [NSValue valueWithPointer:@selector(mySelector:)];

// NSValue -> selector
SEL mySelector = [mySelectorValue pointerValue];

PS:可能会用到target,这个就是一个id类型,随便存.

// example
id target = self;

发表评论

电子邮件地址不会被公开。 必填项已用*标注