0

@「生物の先生 A BK 1」が得られるように各インデックスを結合できるようにしたいのですが、これまでのところ成功していません。これは私がこれまでに持っているものですが、ここからどこへ行くべきかわかりません。

@interface ListTableViewController () <UISearchDisplayDelegate>

@property (strong, nonatomic) NSArray *className;
@property (strong, nonatomic) NSArray *teacherName;
@property (strong, nonatomic) NSArray *blockNumber;

@end

@implementation ListTableViewController

- (void)viewDidLoad {

    [super viewDidLoad];
    self.className = [NSArray arrayWithObjects:
                  @"Biology",
                  @"English III",
                  @"Chemistry",
                  @"Algebra II",
                  @"Morality", nil];

self.teacherName = [NSArray arrayWithObjects:
                    @"Teacher A",
                    @"Teacher B",
                    @"Teacher C",
                    @"Teacher D",
                    @"Teacher E", nil];

self.blockNumber = [NSArray arrayWithObjects:
                    @"BK 1",
                    @"BK 3",
                    @"BK 6",
                    @"BK 2",
                    @"BK 1", nil];
}
4

6 に答える 6

0

次のコードを試してください。

for (int i = 0 ; i< self.className.count; i++)
{
  NSString *temStr = [[NSString stringWithFormat:@"%@ ", [self.className objectAtIndex:i]] stringByAppendingString:[NSString stringWithFormat:@"%@ ", [self.className objectAtIndex:i]]]
  NSLog("%@", [temStr stringByAppendingString:[self.blockNumber objectAtIndex:i]])
}
于 2014-01-23T05:42:21.927 に答える
0

これを試して...

int total = self.className.count;
NSMutableArray *combinedName = [NSMutableArray array];
if (total == self.teacherName.count && total == self.blockNumber.count)
{
   for(int i=0;i< total;i++)
    {
        NSString *str =[NSString stringWithFormat:@"%@ %@ %@", [self.className objectAtIndex:i],[self.teacherName objectAtIndex:i],[self. blockNumber objectAtIndex:i]];
        [combinedName addObject:str];
   }
}
else 
   NSLog(@"Cann't combine");
于 2014-01-23T05:42:48.653 に答える
0

これを試して

 //Assuming three array are in same length

 NSMutableArray *combineArray=[[NSMutableArray alloc] init];
 for(int i=0; i<[[self className] count]; i++)
 {
      [combineArray addObject:[NSString stringWithFormat:@"%@ %@ %@", [[self className] objectAtIndex:i],[[self teacherName] objectAtIndex:i], [[self blockNumber] objectAtIndex:i]];
 } 

 NSLog(@"%@", combineArray); //here is your output.
于 2014-01-23T05:43:54.370 に答える
0

このようなものは機能しますが、かなり醜いです。

self.className = [NSArray arrayWithObjects:@"Biology",@"English III",@"Chemistry",@"Algebra II",@"Morality", nil];
self.teacherName = [NSArray arrayWithObjects:@"Teacher A",@"Teacher B",@"Teacher C",@"Teacher D",@"Teacher E", nil];
self.blockNumber = [NSArray arrayWithObjects:@"BK 1",@"BK 3",@"BK 6",@"BK 2",@"BK 1", nil];

NSMutableArray *combinedNames = [[NSMutableArray alloc] init];
if (([self.className count] == [self.teacherName count]) && [self.className count] == [self.blockNumber count]) {
    for (int index = 0; index < [self.className count]; index++) {
        [combinedNames addObject:[NSString stringWithFormat:@"%@ %@ %@", [self.className objectAtIndex:index], [self.teacherName objectAtIndex:index], [self.blockNumber objectAtIndex:index]]];
    }
}

for (NSString *string in combinedNames) {
    NSLog(@"%@", string);
}

そしてそれは出力します:

Biology Teacher A BK 1
English III Teacher B BK 3
Chemistry Teacher C BK 6
Algebra II Teacher D BK 2
Morality Teacher E BK 1

アップデート

これは、私がまとめる前に他の人が投稿したようです。ただし、配列がすべて同じ長さであることを確認しているとは思いません。誰の回答でも使用できます。反復処理を試みる前に、すべての配列に同じ数のオブジェクトが含まれていることを確認することをお勧めします。

于 2014-01-23T05:48:09.797 に答える