相关疑难解决方法(0)

使用参数从方法名称创建选择器

我有一个SEL从当前对象获取的代码示例,

SEL callback = @selector(mymethod:parameter2);
Run Code Online (Sandbox Code Playgroud)

我有一个像这样的方法

 -(void)mymethod:(id)v1 parameter2;(NSString*)v2 {
}
Run Code Online (Sandbox Code Playgroud)

现在我需要转移mymethod到另一个对象,比如说myDelegate.

我试过了:

SEL callback = @selector(myDelegate, mymethod:parameter2);
Run Code Online (Sandbox Code Playgroud)

但它不会编译.

objective-c selector

57
推荐指数
3
解决办法
12万
查看次数

什么是 objc_selector 实现?

我发现该SEL类型具有下一个定义:

typedef struct objc_selector *SEL;
Run Code Online (Sandbox Code Playgroud)

但我找不到如何objc_selector实施。

好的,如果我们有下一个代码

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
  SEL mySelector = NSSelectorFromString(@"mySelector");
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

, thenmySelector只是一个指针。在它包含的地址之后,我们看到了 C 字符串,它可以显示为:

const char* mySelector = "mySelector";
Run Code Online (Sandbox Code Playgroud)

objc_selector不是 C 字符串,它是结构,它可以包含其他内容。所以我想知道objc_selector结构是如何实现的。

macos objective-c objective-c-runtime selector ios

6
推荐指数
1
解决办法
1920
查看次数

标签 统计

objective-c ×2

selector ×2

ios ×1

macos ×1

objective-c-runtime ×1