不进入方法

时间:2014-06-10 06:56:23

标签: ios iphone objective-c

我刚学习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方法。我不确定为什么会这样。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

  

我不确定为什么会这样。

最有可能的是,因为_networkController是零。它显然是一个实例变量,但您还没有在-initWithStyle:中为您提供一个值,而您正尝试向其发送消息。

要解决此问题,只需创建一个EXNetworkingController实例并在使用之前将其分配给您的ivar:

_networkController = [[EXNetworkingController alloc] init]; // or use the correct initializer
[_networkController createSession];

答案 1 :(得分:-1)

您没有为alloc执行initEXNetworkingController。我建议您将createSession方法公之于众,并将其调用。它可以通过EXNetworkingController类名本身来调用。

做这样的事情:

+(void)createSession{
    //Your createSession code goes here
}

您只需要使用加号(+)

替换-(void)createSession方法前面的减号( - )

然后在EXCoursesViewController内的initWithStyle课程中[_networkController createSession];替换[EXCoursesViewController createSession];

您不再需要制作EXCoursesViewController的对象。 因此,您可以删除EXNetworkingController *_networkController;

希望这会有所帮助。感谢。