我可以创建一个包含myArray
对象的所有哈希值这样的NSArray
:想NSArray的valueForKey返回数组索引
NSArray *a = [myArray valueForKey:@"hash"];
我传递给valueForKey:
什么键获得一个数组包含myArray的索引?
说myArray有n项。我想要做这样的事情:
NSArray *a = [myArray valueForKey:@"index"];
我可以创建一个包含myArray
对象的所有哈希值这样的NSArray
:想NSArray的valueForKey返回数组索引
NSArray *a = [myArray valueForKey:@"hash"];
我传递给valueForKey:
什么键获得一个数组包含myArray的索引?
说myArray有n项。我想要做这样的事情:
NSArray *a = [myArray valueForKey:@"index"];
NSArray * arrayWithNumbersInRange(NSRange range)
{
NSMutableArray * arr = [NSMutableArray array];
NSUInteger i;
for(i = range.location; i <= range.location + range.length; i++){
[arr addObject:[NSNumber numberWithUnsignedInteger:i];
}
return arr;
}
NSArray * indexArray = arrayWithNumbersInRange((NSRange){0, [myArray length]-1});
您可以查询一个NSArray为对象的指数与indexOfObject:
NSArray *a = [myArray valueForKey:@"hash"];
NSInteger index = [myArray indexOfObject:a];
创建的超NSArray返回索引:
//
// CapArrayOfIndex.h
// Created by carmin politano on 7/26/12.
// no rights reserved
//
@interface CapArrayOfIndex : NSArray {
/*! Simulated constant array containing an array of NSNumber representing the index. */
NSUInteger iCount;
//*! NSNotFound causes bybass of index bounds testing. */
}
#pragma mark create
+ (CapArrayOfIndex*) withCount: (NSUInteger) aCount;
@end
和
//
// CapArrayOfIndex.mm
// Created by carmin on 7/26/12.
// no rights reserved
//
#import "CapArrayOfIndex.h"
@implementation CapArrayOfIndex
#pragma mark NSCopying
- (id) copyWithZone: (NSZone*) aZone {
/*! New allocation required because -count is a mutable property. */
return [CapArrayOfIndex withCount: self.count];
}
#pragma mark create
+ (CapArrayOfIndex*) withCount: (NSUInteger) aCount {
CapArrayOfIndex* zArray = self.alloc;
zArray->iCount = aCount;
return zArray;
}
#pragma mark NSArray
- (NSUInteger) count {
return iCount;
}
- (void) setCount: (NSUInteger) aCount {
iCount = aCount;
}
- (id) objectAtIndex: (NSUInteger) aIndex {
/*! My code performs a bounds test using unusual macros: return [ViaUInteger RaiseIfObjectAtIndex(nil, self, aIndex, nil)]; */
return [NSNumber numberWithInteger: aIndex];
}
@end
此版本已经过测试。它应该可以自动合成属性计数(删除它的实例变量和方法),但我现在不使用此代码(现在不能测试修改)。 – carmin 2014-01-17 00:51:49
这不回答这个问题。给定一个包含n个对象的数组,我想创建一个包含整数'0,1 ... n-1'的数组。 – SundayMonday 2011-12-22 01:36:44
数组中的键总是按顺序从0 - > count - 1,它们不是可可对象,因此不会返回所要求的方法。 – Jessedc 2011-12-22 02:04:10