IOS:默认属性值

时间:2012-03-21 14:43:41

标签: objective-c ios memory-management

如果我在实现文件中直接写这样的东西:

UINavigationBar *navBar = [[UINavigationBar alloc] init];

在这种情况下,我没有为我的navBar设置任何属性,它的属性/属性/什么都没有。

修改

-(IBAction) loginButtonPressed:(UIButton *)sender
{
UITabBarController *tabBar = [[UITabBarController alloc] init];
FirstScreen *f = [[FirstScreen alloc] initWithNibName:@"FirstScreen" bundle:nil];
UINavigationController *nav1 = [[UINavigationController alloc] initWithRootViewController:f];
nav1.title = @"FirstScreen";

SecondScreen *s = [[SecondScreen alloc] initWithNibName:@"SecondScreen" bundle:nil];
UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:s];
nav2.title = @"SecondScreen";

ThirdScreen *t = [[ThirdScreen alloc] initWithNibName:@"ThirdScreen" bundle:nil];
UINavigationController *nav3 = [[UINavigationController alloc] initWithRootViewController:t];
nav3.title = @"ThirdScreen";

NSArray *navControllers = [NSArray arrayWithObjects:f, s, t, nil];

tabBar.viewControllers = navControllers;

}

1 个答案:

答案 0 :(得分:3)

对象的属性默认为nil0。但有可能在init方法中更改了这些值。

有关详情,请随时咨询documentation

  
      
  • tintColor:默认值为nil。

  •   
  • barStyle:默认值为UIBarStyleDefault。

  •   

修改

要回答您编辑的问题,tabBarnav2,...是局部变量,而不是属性。

如果您希望它们成为属性,则首先要声明此类属性,然后您必须使用self.tabBar,...

进行访问

.h文件中:

// ...
@property (strong, nonatomic) UITabBarController *tabBar;
// ...

.m文件中:

// ... @synthesize tabBar;

-(IBAction) loginButtonPressed:(UIButton *)sender
{
    self.tabBar = [[UITabBarController alloc] init];
    // ...
}