Objective c iOS5 SDK-ARC和内存管理

Objective c iOS5 SDK-ARC和内存管理,objective-c,ios5,Objective C,Ios5,Q) 是否要求所有接口类都从超类继承? Q) 在下面的代码中-从iOS5开始使用ARC时我还需要做什么(玩家是NSMUtable数组),除非我错了,我相信ARC之后我们不需要保持ref计数: //那么这是必需的吗? Player*Player=[[Player alloc]init] {players = [NSMutableArray arrayWithCapacity:20]; Player *player = [[Player alloc] init]; player.name = @"B

Q) 是否要求所有接口类都从超类继承? Q) 在下面的代码中-从iOS5开始使用ARC时我还需要做什么(玩家是NSMUtable数组),除非我错了,我相信ARC之后我们不需要保持ref计数:

//那么这是必需的吗? 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];}
Q) 关于使接口文件和实现文件子类成为对象类的规则是什么,即在java中,所有内容都是从对象类派生的,那么我们是为实现OTN/接口类声明NSObject,还是不需要声明NSObject?我将在哪里定义它

Q) 哪一个是推荐的解决方案 A:Player*Player=[[Player alloc]init]; 或 B:Player*Player=[[Player new];//除非这是非法的

Q) ARC是否仅在Mac OS X应用程序或iOS(如iphone/touch等)上可用,或者我们仍然需要手动内存管理

Q) singleton模式可以应用于Objective-c、cocoa touch iphone应用程序吗?

  • 您必须执行
    [[Player alloc]init]
    来实例化对象
  • 始终从
    NSObject
    派生类,除非您特别想从其他类派生
  • [[Player alloc]init]
    等同于
    [Player new]
    ,但前者是首选,因为您可以轻松地交换另一个初始值设定项,例如
    [[Player alloc]initWithName:@“John Doe”]
  • ARC在iOS和Mac上都可用,应该在Mac上使用它,而不是垃圾收集,这在某种程度上被弃用
  • 我不明白为什么你不能在iOS上创建单例
      • 您必须执行
        [[Player alloc]init]
        来实例化对象
      • 始终从
        NSObject
        派生类,除非您特别想从其他类派生
      • [[Player alloc]init]
        等同于
        [Player new]
        ,但前者是首选,因为您可以轻松地交换另一个初始值设定项,例如
        [[Player alloc]initWithName:@“John Doe”]
      • ARC在iOS和Mac上都可用,应该在Mac上使用它,而不是垃圾收集,这在某种程度上被弃用
      • 我不明白为什么你不能在iOS上创建单例

      >>始终从NSObject派生类,除非您想特别从其他类派生-我理解这一点,但我想问的是,我们是明确定义它还是编译器处理它?-至于单例模式,我在这方面找不到可靠的iOS5代码有什么想法吗?查看>[[Player alloc]initWithName:@“John Doe”]我有点迷茫,这里是initWithName是NSMuttable数组类上的一个方法。@RedMan NSObject是Cocoa的基本类,但您不需要从它派生。如果不显式执行,您将无法获得它提供的功能().至于singleton,我不明白为什么它应该与非iOS环境有所不同,例如,请看这个问题Just add for others引用类方法是使用singleton模式的理想且唯一的方法。“唯一的方法”?这有点极端。是的,这是最常见的模式。作为参考,我在这里描述了实现该模式的一种常见方法:对于另一个问题,您需要有一个非常具体的原因来创建一个新的根类(即,不从NSObject或NSProxy传递继承Obj-C类)这不是一个惯例。根类有很多强有力的例子吗?-NSObject和NSProxy都是超级类的根,所以无论什么都不能替换根类。现在我有点困惑,如果你能解释一下,当你说根类>>总是从NSObject派生你的类,除非你特别想从其他类派生-我明白这一点,但我想我想问的是,我们是明确定义它还是编译器处理它?-至于单例模式,我在这方面找不到可靠的iOS5代码有什么想法吗?查看>[[Player alloc]initWithName:@“John Doe”]这里我有点迷糊了,initWithName是NSMuttable数组类上的一个方法。@RedMan NSObject是Cocoa的基本类,但您不需要从中派生。如果不显式执行,您将无法获得它提供的功能().至于singleton,我不明白为什么它应该与非iOS环境有所不同,例如,请看这个问题Just add for others引用类方法是使用singleton模式的理想且唯一的方法。“唯一的方法”?这有点极端。是的,这是最常见的模式。作为参考,我在这里描述了实现该模式的一种常见方法:对于另一个问题,您需要有一个非常具体的原因来创建一个新的根类(即,不从NSObject或NSProxy传递继承Obj-C类)这不是一个惯例。根类有很多强有力的例子吗?-不是NSObject吗?NSProxy将是超级类的根,所以不管你用什么来代替根类。现在我有点困惑,如果你能解释一下你说的根类