NSArray 使用:
#import "MS_NSArray.h"
@implementation MS_NSArray
@synthesize _nsArray;
-(void)showNSArray
{
_nsArray = [[NSArray alloc] initWithObjects:@"One",@"Two",@"Three", nil];
unsigned long nsCount = _nsArray.count;
NSLog(@"NSArray Count %lu",nsCount);
NSLog(@"NSArray Object At Index :%@",[_nsArray objectAtIndex:2]);
//NSArray 初始化
NSLog(@"_nsArray地址 %p",&_nsArray);
for(id item in _nsArray)
{
NSLog(@"%@ %p",item,&item);
}
NSArray *array1 = [[NSArray alloc] initWithArray:_nsArray];
NSLog(@"array1地址 %p,数组长度 %lu",&array1,array1.count);
for (id item in array1) {
NSLog(@"%@ %p",item,&item);
}
NSArray *array2 = [[NSArray alloc] initWithArray:_nsArray copyItems:YES];
NSLog(@"array2地址 %p , 数组长度 %lu",&array2,array2.count);
for(id item in array2)
{
NSLog(@"%@ %p",item,&item);
}
id arrayList[] = {@"A",@"B",@"C"};
NSArray *array3 = [[NSArray alloc] initWithObjects:arrayList count:3];
NSLog(@"array3 数组长度 %lu",array3.count);
for(id item in array3)
{
NSLog(@"%@ ",item);
}
//NSArray 转 数组 (不安全)
__unsafe_unretained id arrayLS[_nsArray.count];
[_nsArray getObjects:arrayLS];
for(int i=0;i<_nsArray.count;i++)
{
NSLog(@" %@ ",arrayLS[i]);
}
//NSArray 范围转换 数组
__unsafe_unretained id arrayLN[_nsArray.count];
NSRange range = NSMakeRange(1, 2);
[_nsArray getObjects:arrayLN range:range];
for(int i=0;i<_nsArray.count;i++)
{
NSLog(@" %@ ",arrayLN[i]);
}
NSLog(@"_nsArray 地址:%p",&_nsArray);
//追加一个元素,获得新地址的NSArray
NSArray *addingArray1 = [_nsArray arrayByAddingObject:@"Four"];
NSLog(@"addingArray1 地址:%p 长度 %lu",&addingArray1,addingArray1.count);
for(id item in addingArray1)
{
NSLog(@"%@",item);
}
//数组元素 “|” 拼接,返回字符串
NSString *componentArray2 = [_nsArray componentsJoinedByString:@"|"];
NSLog(@"ComponentArray2 %@",componentArray2);
NSLog(@"_nsArray desctroy %@",_nsArray.description);
id firstItem = _nsArray.firstObject;
id lastItem = _nsArray.lastObject;
/*
返回NSArray和otherArray中第一个相同的对象
- (id)firstObjectCommonWithArray:(NSArray *)otherArray;
- (NSUInteger)indexOfObject:(id)anObject;
在整个数组中,在range范围内的anObject对象的索引位置
- (NSUInteger)indexOfObject:(id)anObject inRange:(NSRange)range;
- (NSUInteger)indexOfObjectIdenticalTo:(id)anObject;
比较指针是否相等
- (NSUInteger)indexOfObjectIdenticalTo:(id)anObject inRange:(NSRange)range;
- (BOOL)isEqualToArray:(NSArray *)otherArray;
顺序获取数组的NSEnumerator
- (NSEnumerator *)objectEnumerator;
倒序获取数组的NSEnumerator
- (NSEnumerator *)reverseObjectEnumerator;
@property (readonly, copy) NSData *sortedArrayHint;
*/
}
@end