iOS5 SDK - ARC和内存管理

时间:2012-01-13 18:32:21

标签: objective-c ios5

问)是否要求所有接口类都继承自超类? Q)在下面的代码中 - 从带有ARC的病房iOS5我仍然需要做(播放器是NSMUtable阵列),除非我错了我相信在ARC之后我们不需要保持引用计数:

//这需要吗? Player * player = [[Player alloc] init];

{players = [NSMutableArray arrayWithCapacity:20];
Player *player = [[Player alloc] init];
player.name = @"Bill Evans";
player.game = @"Tic-Tac-Toe";
player.rating = 4;
[players addObject:player];
player = [[Player alloc] init];
player.name = @"Oscar Peterson";
player.game = @"Spin the Bottle";
player.rating = 5;
[players addObject:player];
player = [[Player alloc] init];
player.name = @"Dave Brubeck";
player.game = @"Texas Hold’em Poker";
player.rating = 2;
[players addObject:player];}
问:关于制作接口文件和实现文件子类的规则是什么,在java中,一切都是从OBject类派生出来的,所以我们为实现/接口类声明NSObject或者不需要它以及我在哪里定义它?

问)哪一个是推荐的解决方案 答:玩家*玩家= [[玩家分配]初始化]; 要么 B:玩家*玩家= [[玩家新]; //除非这是非法的?

问)ARC仅适用于Mac OS X应用程序或iOS上,即iphone / touch等,还是我们还需要手动内存管理?

Q)可以将单例模式应用于Objective-c,cocoa touch iphone应用程序吗?

1 个答案:

答案 0 :(得分:1)

  • 你必须[[Player alloc] init]来实例化对象
  • 始终从NSObject派生您的课程,除非您想特别派生自其他课程
  • [[Player alloc] init]相当于[Player new],但前者是首选,因为您可以轻松交换其他初始值设定项,例如[[Player alloc] initWithName:@"John Doe"]
  • ARC可以在iOS和Mac上使用,应该使用它而不是垃圾收集,这有点被弃用
  • 我不明白为什么你不能在iOS上创建单身人士