我刚学习iOS开发,但我有C ++经验,而且我遇到的问题是我在一个对象上调用一个方法,但该对象没有被调用。这是我的代码:
@implementation EXCoursesViewController{
EXNetworkingController *_networkController;
}
-(instancetype)initWithStyle: (UITableViewStyle)style{
self = [super initWithStyle: style];
if(self){
self.navigationItem.title = @"Title";
[_networkController createSession];
[self fetchFeed];
}
return self;
}
[_networkController createSession]
似乎并没有在我制作的EXNetowrkingController
中调用createSession方法。我不确定为什么会这样。任何帮助将不胜感激。
答案 0 :(得分:1)
我不确定为什么会这样。
最有可能的是,因为_networkController
是零。它显然是一个实例变量,但您还没有在-initWithStyle:
中为您提供一个值,而您正尝试向其发送消息。
要解决此问题,只需创建一个EXNetworkingController
实例并在使用之前将其分配给您的ivar:
_networkController = [[EXNetworkingController alloc] init]; // or use the correct initializer
[_networkController createSession];
答案 1 :(得分:-1)
您没有为alloc
执行init
和EXNetworkingController
。我建议您将createSession
方法公之于众,并将其调用。它可以通过EXNetworkingController
类名本身来调用。
做这样的事情:
+(void)createSession{
//Your createSession code goes here
}
您只需要使用加号(+)
替换-(void)createSession
方法前面的减号( - )
然后在EXCoursesViewController
内的initWithStyle
课程中[_networkController createSession];
替换[EXCoursesViewController createSession];
您不再需要制作EXCoursesViewController
的对象。
因此,您可以删除EXNetworkingController *_networkController;
希望这会有所帮助。感谢。