为什么编译器警告我"控制到达非空函数的结束"?

iPh*_*one 2 objective-c

我在animal.h文件中声明了一个方法

-(id)initWithName:(NSString *)n description:(NSString *)d url:(NSString *)u;
Run Code Online (Sandbox Code Playgroud)

我已经在animal.m文件中实现了这个方法

-(id)initWithName:(NSString *)n description:(NSString *)d url:(NSString *)u
{
    self.name=n;
    self.description=d;
    self.imageURL=u;

}
Run Code Online (Sandbox Code Playgroud)

但在文件的末尾它显示警告,如"控制到达无效功能的结束"

任何人都可以告诉我这是什么问题?

das*_*dom 9

您的方法的返回类型是id.但是你什么都没回来.这是编译器所说的错误.

顺便说一句:这个init方法有很多缺陷.您应该将其更改为:

-(id)initWithName:(NSString *)n description:(NSString *)d url:(NSString *)u
{
    if ((self = [super init])) {
        self.name=n;
        self.description=d;
        self.imageURL=u;
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)