NSArray是一个可以存放对象的数组类,虽然可以存储不同类的对象,但是一般只存放同类的对象,方便批量操作。
1.NSArray的创建
2.NSarray的一些简单的方法
#import <Foundation/Foundation.h>//------main.m
#import "LSMe.h"
#import "LSYou.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
LSMe *me = [[LSMe alloc] init];
me.age = 28;
me.name = @"tom";
LSYou *you = [[LSYou alloc] init];
you.age = 18;
you.name = @"jack";
//******1.NSArray的创建方法
//1.1通过类方法创建,中间不要放nil,表示数组结束
NSArray *array = [NSArray arrayWithObjects:me,you, nil];
NSLog(@"%@",array);//数组输出是不支持中文
//1.2通过对象方法创建
NSArray *array2 = [[NSArray alloc] initWithObjects:me,you, nil];
NSLog(@"%@",array2);
//1.3通过字面量方法创建,后面不需要加nil
NSArray *array3 = @[me,you];
NSLog(@"%@",array3);
//******2.NSArray对象方法介绍
//2.1输出索引对象
NSLog(@"%@",[array3 objectAtIndex:1]);//对象方法
NSLog(@"%@",[array3 objectAtIndexedSubscript:1]);//跟上面一个相同
NSLog(@"%@",array3[0]);//快捷方法
NSLog(@"%ld",array3.count);//打印数组元素个数
//2.2是否包含某个对象,通过isEqual方法来判断是否包含,可以重新isequal方法来验证
LSYou *you2 = [[LSYou alloc] init];
you2.name = @"jack";
BOOL isHas = [array3 containsObject:you2];
//数组里面没有you2还是打印yes,说明是通过isEqual的方法来判断的
if (isHas) {
NSLog(@"yes");
}else{
NSLog(@"no");
}
}
return 0;
}
#import <Foundation/Foundation.h>//------LSme.h
@interface LSMe : NSObject
@property(nonatomic,copy)NSString *name;
@property(nonatomic,assign)int age;
@end
#import "LSMe.h"//------LSMe.m
@implementation LSMe
-(NSString *)description{
return [NSString stringWithFormat:@"name = %@,age = %d",_name,_age];
}
@end
#import <Foundation/Foundation.h>LSYou.h
@interface LSYou : NSObject
@property(nonatomic,copy)NSString *name;
@property(nonatomic,assign)int age;
@end
#import "LSYou.h"//------LSYou.m
@implementation LSYou
-(NSString *)description{
return [NSString stringWithFormat:@"name = %@,age = %d",_name,_age];
}
-(BOOL)isEqual:(LSYou *)object{
if (self == object) {
return YES;
}
return [self.name isEqualToString:object.name];
}
@end