您的位置:首页 > 其它

oc-29-可变数组

2016-03-24 10:34 274 查看
/**
数组长度不固定,可以随便往里面添加或者删除元素。
1.创建数组
NSMutableArray *arrayM = [NSMutableArray array]
2.给数组添加元素(只能是OC对象)
- (void)addObject:(id)anObject;
3.如何删除数组元素

*/

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
@autoreleasepool {
// 1.如何创建1个可变数组
NSMutableArray *arrayM = [NSMutableArray array];

// 2.给数组里面添加元素
[arrayM addObject:@"ssssx"];
[arrayM addObject:@"赵信"];
[arrayM addObject:@"嘉文"];
[arrayM addObject:@"ssssx"];
[arrayM addObject:@"赵信"];
[arrayM addObject:@"嘉文"];
[arrayM addObject:@"ssssx"];
[arrayM addObject:@"赵信"];
[arrayM addObject:@"嘉文"];

// 3.删除数组元素
// 删除指定名字的数组元素
[arrayM removeObject:@"ssssx"];
// 删除指定位置的数组元素
[arrayM removeObjectAtIndex:1];
// 删除所有元素
[arrayM removeAllObjects];

NSLog(@"%@",arrayM);

}
return 0;
}

/*
@synthesize name = _b; //相当于操作_b的值
-(void)setName:(NSString *) name
{
_b = name;
}

-(NSString *)name
{
return _b;
}
注意:在4.4之前,@property和@synthesize成对出现

2)@property 在Xcode4.4之后(@property增强)
增强使用:
@property int score;

1).h文件中 帮我们声明 setScore(setter) 和score(getter)方法
2).m 中帮我们生成_score的私有变量(在外部不能访问,不能被子类继承)
3).m 中帮我们实现 get和set方法

3、动态类型&id类型

动态类型:程序在运行的时候,才能确定对象属于什么类型
静态类型:程序编译的时候,就确定了对象的类型

动态类型的体现: 多态,父类指针可以指向子类对象
NSObject 是所有类的基类
NSObject *obj = [Dog new];
父类调用子类特有的方法
[(Person *)obj eat];
//id类型,id类型又被称为 万能指针。
id obj; //运行时检查
obj = [Car new]; //实例变量 _speed
[obj stop];
//id类型调用子类的方法的时候不要强制类型转换,NSObject *类型调用子类方法的时候要强制类型转换。

6、构造方法的使用
[Person new];
-> [Person alloc];//空间申请完后,不能立即使用,有可能会导致意想不到的错误

-> [[Person alloc] init];
[Person new]; 会把我们的成员变量的值,默认的设置为0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: