0

我在 XCode 4.4 上编写了一个 Objective-C 代码。我有一个 NSMutableArray 作为我的类 k_info 的实例变量,我也以 oneplaces 的名称定义和合成(非原子,保留)属性。我无法在 NSMutableArray 个位中添加 NSMUtableString 对象。当我尝试添加它时。onesplaces 的大小保持为 0,并且零索引处的对象显然保持为空。我尝试使用和不使用“self”关键字来执行此操作,但在任何一种情况下都不起作用。我添加对象并打印它的语法是正确的,因为当我创建一个新的 NSMutableArray 测试并尝试做同样的事情时,它适用于它,但不适用于实例变量 oneplaces。如果不解决此问题,我将无法在我的项目中继续进行。请告诉我为什么会发生这种情况以及我应该如何解决这个问题。

-(void)createinfo:(NSMutableArray )al varsis:(int)vars { NSMutableString stes=[[NSMutableString alloc]init]; stes=(NSMutableString*)@"string0";

  [ onesplaces addObject:stes];
  NSLog(@"%u",[onesplaces count]);
  NSLog(@"value is: %@ ",[ onesplaces objectAtIndex:0]);

  [ self.onesplaces addObject:stes];
   NSLog(@"%u",[onesplaces count]);
   NSLog(@"value is: %@ ",[self.onesplaces objectAtIndex:0]);

  NSMutableArray* test=[[NSMutableArray alloc]init];
  [ test addObject:stes];
   NSLog(@"%u",[test count]);
  NSLog(@"value is: %@ ",[test objectAtIndex:0]);

}
4

1 回答 1

1

您可能忘记创建数组了。在您的代码中的某处,可能在您的init方法中,您需要在使用它之前创建数组。

self.onesplaces = [[NSMutableArray alloc] init];

你得到nil的不是错误消息,因为 Objective-C 允许你向 nil 发送消息,它总是返回 nil。

于 2012-11-24T19:07:16.570 回答