没有调用@synthesize dataController

时间:2009-08-28 15:09:03

标签: iphone objective-c

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Create the data controller.
    DataController *controller = [[DataController alloc] init];
    self.dataController = controller;


    [controller release];

    rootViewController.dataController = dataController;


    // Override point for customization after app launch    
    [window addSubview:[navigationController view]];
    [window makeKeyAndVisible];
}

在我的申请中,我找到了rootViewController.dataController = dataController; 不工作。我在@synthesize dataController设置了一个断点,发现@synthesize dataController未被调用。

我的代码出了什么问题。

我将所有代码与SimpleDrillDownApp(Apple的一个例子)进行比较,它们几乎相同。为什么我的申请不起作用!编译通过了。但它无法正常工作。

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

在没有看到您的代码的情况下,最明显的结论是rootViewControllernil,因此,rootViewController.dataController = dataController;什么都不做,因为Objective-C将消息视为无操作。

因此,在进行任何其他操作之前,请检查rootViewController是否为零。

答案 1 :(得分:0)

你不会看到调用合成调用,合成只为你的属性生成getter和setter,你如何声明属性?如果你说它不起作用你的意思是什么?从上面的代码我不知道你初始化rootViewController的位置,它是通过nib设置的吗?如果是这样,你可能设置错了,rootViewController是nil ...

答案 2 :(得分:0)

dataController是一个简单的ivar访问。

self.dataController将通过getter,不是吗?