Я пытаюсь использовать категорию, описанную в этой статье: http://iphonedevelopment.blogspot.com/2008/10/shuffling-arrays.html
Я настроил следующее:
// NSArray+Shuffle.h
#import <Foundation/Foundation.h>
@interface NSArray (Shuffle)
-(NSArray *)shuffledArray;
@end
// NSArray+Shuffle.m
#import "NSArray+Shuffle.h"
@implementation NSArray (Shuffle)
-(NSArray *)shuffledArray
{
NSMutableArray *array = [NSMutableArray arrayWithCapacity:[self count]];
NSMutableArray *copy = [self mutableCopy];
while ([copy count] > 0)
{
int index = arc4random() % [copy count];
id objectToMove = [copy objectAtIndex:index];
[array addObject:objectToMove];
[copy removeObjectAtIndex:index];
}
// Using IOS 5 ARC
// [copy release];
return array;
}
@end
Затем в своем коде, который я хочу использовать,Я импортировал категорию:
#import "NSArray+Shuffle.h"
Затем я попытался использовать ее следующим образом:
NSArray *orderedGallary = [[NSArray alloc] initWithObjects:
[NSDictionary dictionaryWithObjectsAndKeys:
@"Pic1", @"pageName",
[UIImage imageNamed:@"Pic1.jpg"],@"pageImage",
nil],
[NSDictionary dictionaryWithObjectsAndKeys:
@"Pic2", @"pageName",
[UIImage imageNamed:@"Pic2.jpg"],@"pageImage",
nil],
nil];
NSArray *shuffler = [[NSArray alloc] shuffledArray:orderedGallary];
_pageData = [shuffler shuffledArray:orderedGallary];
Но я получаю следующее сообщение об ошибке компилятора:
ModelController.m: error: Automatic Reference Counting Issue: Receiver type 'NSArray' for instance message does not declare a method with selector 'shuffledArray:'
Есть идеи?