小编Joh*_*her的帖子

为什么我的IBOutlet在ARC下发布?

问题

IBOutlet在我有机会使用之前就已发布.

我想要的是

我想从我的app委托访问导航控制器,以便我可以重新加载表视图.

我的设置

我有:

  • 在目标设置中设置为主界面的Main.xib
  • 导航控制器的IBOutlet作为我的app代表上的ivar
  • 这个IBOutlet连接到Main.xib中正确的导航控制器
  • App Delegate在xib中实例化,但未设置为File的所有者

我正在使用ARC,Xcode 4.3.2和iOS5.1

我试过的

  • 更改部署目标
  • 在dealloc上为导航控制器,app委托设置一个断点 - 它们从未被调用过
  • 阅读我在ARC和IBOutlets上可以找到的一切 - 似乎没有任何东西与我正在做的事情相矛盾
  • 创建一个只需要最少类的新项目 - 我看到完全相同的问题

KPAppDelegate.h

@interface KPAppDelegate : UIResponder <UIApplicationDelegate> {
    IBOutlet  KPBrowseExpensesNavigationController *nc;
}

@property (strong) IBOutlet KPBrowseExpensesNavigationController *nc;
Run Code Online (Sandbox Code Playgroud)

KPAppDelegate.m

@implementation KPAppDelegate

@synthesize nc;

-(void)setNc:(KPBrowseExpensesNavigationController *)nc_ {
    nc = nc_; // This gets called on view load and nc gets set.
}

...snip...

// This is called about 5 seconds after app startup
-(void)objectLoader:(RKObjectLoader *)objectLoader didLoadObjects:(NSArray *)objects { …
Run Code Online (Sandbox Code Playgroud)

cocoa-touch iboutlet ios automatic-ref-counting

6
推荐指数
1
解决办法
300
查看次数