我正在尝试给出一个NSMutableArray值'SEL',而XCode正在给我这个错误。我的代码:
SEL camera=@selector(p_userAlbum);
NSMutableArray *sels=@[camera].mutableCopy;
是否有办法将SEL放入数组?
答案 0 :(得分:3)
使用NSStringFromSelector
和NSSelectorFromString
//Save
SEL camera=@selector(p_userAlbum);
NSString * selName = NSStringFromSelector(camera);
NSMutableArray *sels=@[selName].mutableCopy;
//Get
NSString * name = sels[0];
SEL mySel = NSSelectorFromString(name);
答案 1 :(得分:0)
它的自我解释,'SEL'不是Objective-C对象,NSArrays只能保存objective-c对象。但是你可以做的是使用一个可以调用你的函数的块(或者只是实际的代码),因为块是objective-c对象,并将它们插入到你的数组中。
例如:
typedef void (^blockType)();
blockType blockName = ^(){
//execute code or your function
};
NSArray *array = @[blockName];
blockType block = array[0]; //get the block out of the array later
block(); //run the block which will run your function or code