2

配列をシャッフルしようとしていますが、最後のステートメントで「'NSArray' の可視の @interface がセレクター 'exchangeObjectAtIndex:withObjectAtIndex:' を宣言していません。

bArray はどのように宣言する必要がありますか?

NSArray *bArray;

そして

 - (void)viewDidLoad
      [self shuffleb];

それから

-(void) shufflb
   {
 bArray = [NSArray arrayWithObjects:
             @"ca",
             @"do",
             @"ba",
             @"tr",
             @"bu",
             @"bl",
             @"bo",
             @"pu",
             nil];

NSInteger count = [bArray count];
for (NSUInteger i = 0; i < count; ++i) {
    // Select a random element between i and end of array to swap with.
    NSInteger nElements = count - i;
    n = (arc4random() % nElements) + i;
    [bArray exchangeObjectAtIndex:i withObjectAtIndex:n];
}
4

2 に答える 2

6

exchangeObjectAtIndexNSMutableArray のメソッドです。

https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html

于 2013-09-08T07:05:42.057 に答える
2
  1. 最新の Objective-C を使用する (コードが読みやすくなります)

  2. 使用したいメソッドは NSMutableArray にのみ存在するため、変更可能な配列または NSArray の変更可能なコピーを作成します (以下を参照)。

    bArray = [@[@"ca", @"do", @"ba", @"tr", @"bu", @"bl",@"bo", @"pu"] mutableCopy];
    
于 2013-09-08T07:08:21.767 に答える