我在animal.h文件中声明了一个方法
-(id)initWithName:(NSString *)n description:(NSString *)d url:(NSString *)u;
我在animal.m文件中实现了这个方法,如
-(id)initWithName:(NSString *)n description:(NSString *)d url:(NSString *)u
{
self.name=n;
self.description=d;
self.imageURL=u;
}
但在文件末尾显示警告,例如“控制到达无效功能的结束”
谁能告诉我这是什么问题?
答案 0 :(得分: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;
}
答案 1 :(得分:1)
init方法应返回对象引用.. 所以,
-(id)initWithName:(NSString *)n description:(NSString *)d url:(NSString *)u
{
self.name=n;
self.description=d;
self.imageURL=u;
return self;
}
答案 2 :(得分:0)
假设动物类是NSObject的子类,并且该方法是初始化器,这里的方法应该是什么样的
-(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;
}