-2

私はこれを持っています...

allTableData = [[NSMutableArray alloc] initWithObjects:
 [[Food alloc] initWithName:@"1" andDescription:@"Hi man!"],
 [[Food alloc] initWithName:@"2" andDescription:@"Hi woman"],
nil ];

どうすればそのようなことができますか?

NSArray *array = [NSArray arrayWithObjects:@"Hi man",@"Hi woman",nil]; 
allTableData = [[NSMutableArray alloc] initWithObjects
for(i=0; i<2; i++)
{
   NSString *aString = [NSString stringWithFormat:@"%d", i];
   [[Food alloc] initWithName:aString andDescription:@"array[i]"];
}

...サイクルを入力するだけでなく、?

4

3 に答える 3

1
[[Food alloc] initWithName:aString andDescription:@"array[i]"];

する必要があります

[[Food alloc] initWithName:aString andDescription:array[i]];

最初のケースでは、 string を追加していましたが"array[i]"、代わりに配列の i 番目の要素にアクセスしたいと考えています。

intまた、 を に変換するためのより短い方法があります。NSString

[NSString stringWithFormat:@"%d", i];

で置き換えることができます

@(i).stringValue

数値の構文は、llvm 3.3 で導入された機能で、リテラル@を作成できます。次に、目的の を取得するために使用できるメソッドがあります。NSNumbersNSNumberstringValueNSString

于 2013-04-12T21:17:54.437 に答える
0
NSArray *array = [NSArray arrayWithObjects:@"Hi man",@"Hi woman",nil];
NSMutableArray* tableData = [NSMutableArray arrayWithCapacity:array.count];

[array enumerateObjectsUsingBlock:^(id obj,NSUInteger index,BOOL* stop){

[tableData addObject:[[Food alloc] initWithName:[@(index) stringValue] andDescription:obj]];

}];
于 2013-04-12T21:27:57.910 に答える
0

これを試して

NSArray *array = [NSArray arrayWithObjects:@"Hi man",@"Hi woman",nil]; 
allTableData = [NSMutableArray array];
for(i=0; i<[array count]; i++){
   NSString *aString = [@(i) stringValue];
   Food *food = [[Food alloc] initWithName:aString andDescription:array[i]];
   [allTableData addObject:food];
}
于 2013-04-12T21:21:17.783 に答える