小编and*_*ewg的帖子

为什么[NSObject respondsToSelector:@selector(init)]返回1?

为什么在NSObject上使用选择器"init"运行respondsToSelector返回1,即使运行[NSObject init]会产生运行时错误?我知道init是一个实例方法,因此只能在实例而不是类上运行.为什么这会返回运行时错误?

if([NSObject respondsToSelector: @selector(init)] == YES )
     [NSObject performSelector: @selector(init)];
Run Code Online (Sandbox Code Playgroud)

此外,由于respondsToSelector是一个实例方法,为什么甚至可以首先调用它?

objective-c

7
推荐指数
1
解决办法
1403
查看次数

为什么exevp之前的printf没有运行?

我得到了"hi!"的输出.为什么这不打印"东西"?

#include <stdio.h>
#include <unistd.h>

int main(int argc, char** argv) {
    char* program_name = "echo";
    char* args[]= {program_name,"hi!",NULL};

    printf("something");
    execvp(program_name,args);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我知道我不是先创建一个子进程.如果我取出execvp行,它会按预期工作.奇怪的.(注意:"echo"是指https://en.wikipedia.org/wiki/Echo_(command))

c unix exec system-calls

4
推荐指数
1
解决办法
262
查看次数

标签 统计

c ×1

exec ×1

objective-c ×1

system-calls ×1

unix ×1