调用静态方法alloc分配内存
暂时把ID当做是任何对象
调用一个动态方法init进行初始化
release内存释放
构造函数initWith
构造函数的声明-(id)initWithXXXXXXX(nsstring *)XXXXXX
编程使用驼峰命名法
-(id)initWithPhoneName:(nsstring) vesion(double)phoneVesion两个变量的实现
self和super的具体区别;self调用子类,super调用父类
readwrite,readonly表示属性是可读写的,也就是可以使用getter和setter,而readonly只能使用getter
assign,retain,cop表示属性如何存储
nonatomic表示不用考虑线程安全问题
-对象方法 +类的方法拿类直接调用
instancetype返回值类型
Category语法:能把一个累的实现分为若干个不同文件中;每个Category市类的一部分;
//添加背景图片
-(void)addBackgroundImage
{
UIImageView * bgImageView = [[UIImageView alloc]initWithFrame:CGRectMake(0,0,320,568)];
//设置图片视图的图片
bgImageView.image = [UIImage imageNamed:@"TuCao_h"];
//把图片视图添加到父视图上
[self.view addSubview:bgImageView];
}
UIImageView专门用来显示视图
CGrect结构体
BOOL判断正确还是错误
NSOrderedAscending比较大小升序
NSOrderedDescending比较大小降序
调用[[XXX new]xxxx]静态调用
动态调用 XX xx = [[ XX alloc]init];[xx 方法名];
self调用自己.m里的文件
-(void)subWithStr
{
NSString * str8 = @"0123456789";
NSString * str9 = [str8 substringToIndex:6];
//从srt8中提取从头至第六个字符串(不包括第六个),生成的字符串。返回字符串地址,不会修改原字符串
NSString * str10 = [str8 substringFromIndex:6];
//从str8中提取第六个字符(包括第六个)到最后一个字符,生成新字符串,返回字符串地址
NSString * str11 = [str8 substringWithRange:NSMakeRange(3, 4)];
//从str8中提取从三个字符串(包括第三个)共四个字符,生成新的字符串,返回字符串地址
NSLog(@"str9 is %@,str10 is %@,str11 is %@",str9,str10,str11);
}
字符串增加、删除
-(void)changeStr
{
NSMutableString * m_str = [[NSMutableString alloc]init];
[m_str setString:@"hello"];
NSLog(@"m_str is %@",m_str);
[m_str setString:@"word"];
NSLog(@"m_str is %@",m_str);
[m_str appendString:@"123"];//增
NSLog(@"m_str is %@",m_str);
[m_str appendFormat:@"%c",'D'];
NSLog(@"m_str is %@",m_str);
[m_str insertString:@"XXXX" atIndex:4];NSLog(@"m_str is%@",m_str);//插入
NSLog(@"m_str is %@",m_str);
[m_str insertString:[NSString stringWithFormat:@"%d",-213] atIndex:7];
NSLog(@"m_str is %@",m_str);
[m_str deleteCharactersInRange:NSMakeRange(3, 5)];//删除
NSLog(@"m_str is %@",m_str);
[m_str replaceCharactersInRange:NSMakeRange(3, 4) withString:@"kkadfasdf"];//替换
NSLog(@"m_str is %@",m_str);
}
枚举 typedef NS_ENUM(NSUInteger,ButtonTag)
{
ButtonTagXxx = xxx;
ButtonTagXxx = xxx;
}
NSArray * arr = @[@"One",@"Two",@"Three",@"Four",@"Five",@"Six"];
for (int i = 0; i < arr.count; i++) {
if (i%2 == 0) {
NSLog(@"arr is %@",[arr objectAtIndex:i]);
}
NSLog(@"arr is%@",arr);
NSMutableArray可变数组
数组的增添删除和替换
NSMutableArray * array = [[NSMutableArray alloc]init];
//增加数组
[array addObject:@"One"];
[array addObject:@"Two"];
[array addObject:@"Three"];
NSLog(@"增加元素 %@",array);
//删除数组
[array removeObject:@"One"];
[array removeObjectAtIndex:1];
NSLog(@"删除元素 %@",array);
//改变数组
[array addObject:@"One"];
[array addObject:@"Three"];
NSLog(@"现在的元素 %@",array);
[array exchangeObjectAtIndex:0 withObjectAtIndex:1];
NSLog(@"交换后的元素 %@",array);
//字符串与数组的转换
-(void)stringTransArray
{
NSString * str = @"ios is so easy,mum will not worry my study,expect...";
//获得一个正序的数组
NSArray * array = [str componentsSeparatedByString:@" "];
NSLog(@"使用compoentsSepartedBuString方法获得的数组是正序的,%@",array);
//如何把正序变成反序
NSMutableArray * mutableArray = [[NSMutableArray alloc]init];
NSEnumerator * enumerator =[array reverseObjectEnumerator];
id obj;
while (obj = [enumerator nextObject]) {
[mutableArray addObject:obj];
}
NSLog(@"可变数组%@",mutableArray);
NSString * newStr =[mutableArray componentsJoinedByString:@""];
NSLog(@"新的字符串 %@",newStr);
}