Objective c 目标C中的空白

Objective c 目标C中的空白,objective-c,void,Objective C,Void,我正在学习Objective-C,我想知道当人们说,当你在一个方法中去掉了void,这意味着这个方法什么也不返回。那到底是什么意思?如果它不是空的,它会“返回”什么?请帮忙 它将返回它声明/写入的任何内容。void正是您所说的,它只是一个单词,用于让编译器知道此函数不返回任何内容,您可以在函数中省略return语句,例如 - (void) myMethod { //do something here } 其中,如果一个方法有一个返回类型,那么如果您没有返回该类型的内容,您将得到一个编译

我正在学习Objective-C,我想知道当人们说,当你在一个方法中去掉了void,这意味着这个方法什么也不返回。那到底是什么意思?如果它不是空的,它会“返回”什么?请帮忙

它将返回它声明/写入的任何内容。

void正是您所说的,它只是一个单词,用于让编译器知道此函数不返回任何内容,您可以在函数中省略return语句,例如

- (void) myMethod {
    //do something here
}
其中,如果一个方法有一个返回类型,那么如果您没有返回该类型的内容,您将得到一个编译错误

- (BOOL) myMethod {
    BOOL x = false;
    //do something
    return x;
}
所以在这里我们可以看到,用你的话“如果它不是void,它会返回什么?”它会返回你告诉它的任何东西,当你声明方法时的返回类型只需要与你实际返回的匹配,这就是全部

注意,您仍然可以在void函数中返回,但它所做的只是过早地结束函数的执行,例如

- (void) myMethod {

    BOOL x = false;

    if(x == false)
        return;

    x = true;
}

在这里我们可以看到,语句
x=true
永远不会执行,因为它将进入if语句并返回,这将结束函数(而不会返回任何内容)

您应该阅读一本编程入门书或学习一门课程。快速的谷歌搜索让我明白了这一点:“void”用于(至少)两种完全不同的东西。“void指针”(
void*
)是一个纯地址的指针,没有关联的数据类型。但是,当“void”用作方法的返回类型时,它表示“nothing”--方法不返回任何值,尝试返回值或使用(未)返回值将导致编译错误。(但这是基本的C/Java表示法,在尝试使用Objective-C之前,您应该了解它。Objective-C不是初学者的语言,如果您在开始学习之前没有打好基础,您可能会学到很多错误的“事实”。)