白羽
2018-09-07
来源 :网络
阅读 1016
评论 0
摘要:本文将带你了解IOS开发入门之iOS:常用属性、方法,希望本文对大家学IOS有所帮助。
本文将带你了解IOS开发入门之iOS:常用属性、方法,希望本文对大家学IOS有所帮助。
前言:一段时间没接触,很容易就忘记以前的知识。专写一篇,供几个月没接触,拿起却忘记了。
0、宏定义、系统相关
0-1)、宏定义、规范
变量:
//全局变量通常用小写g来提示
int gNumb=0;
//宏定义通常用小写k来提示,也不一定全是
#define kMaxValue(value1,value2) ( value1>value2 ? value1 : value2 )
0-2)、系统相关
//重写父类的方法,如TableViewCell 和 按钮等本身有些View
-(void)layoutSubviews
{
[super layoutSubviews];
}
//自带set 和 get 方法
@property (nonatomic,strong) NSArray *myArr;
//重写属性(如MVC,给cell模型,数据就刷上View)
- (void)setLabelString:(NSString *)labelString
{
_labelString = labelString;
self.labelView.text = labelString;
}
//懒加载 : 用这个数字的时候才去加载它!加载完之后,不在加载!(也相当于重写上面的get方法)
-(NSArray *)myArr
{
if (_myArr==nil) {
_myArr = ;
}
return _myArr;
}
//获取本地path
NSString *path = [[NSBundle mainBundle]pathForResource:@"xxx" ofType:@"mp3"];
//url连接地址
NSURL *url = [NSURL fileURLWithPath:path];
//字体样式
NSArray * array = [UIFont familyNames];
//每个样式的子样式
NSArray * subfontArr = [UIFont fontNamesForFamilyName:array[0]];
//字体粗体
UIFont *font = [UIFont boldSystemFontOfSize:20.0];
//代理:两个类通信、或后面将要dismiss/remove的VC给前面的VC传值
思路
//1、第2个VC要传值给第1个VC,所以要把第1个VC的地址给第2个VC,所以第2个VC的属性要有第1个VC,所以,第2个VC用id
@protocol SecondProtocol
-(void)passMessage:(NSString*)string;
@end
//2-1)、第二视图检查第一视图的方法,使用代理
if (self.delegate && [self.delegate respondsToSelector:@selector(passMessage:)]) {
[self.delegate passMessage:self.textfieldView.text];
}
或者
//2-2)、直接转类型,控制(用得少)
RootViewController *root = (RootViewController*)self.delegate;
root.string = self.textfieldView.text;
//添加观察者
[self.phone addObserver:self forKeyPath:@"price" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];
//观察到变化控制
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary
{
NSNumber *num = [change objectForKey:@"new"];
NSLog(@"%@",num);
}
//移除观察者
-(void)dealloc
{
// [self removeObserver:self forKeyPath:@"xxx"];
[[NSNotificationCenter defaultCenter]removeObserver:self];
}
//发送通知
[[NSNotificationCenter defaultCenter]postNotificationName:@"pricechange" object:self userInfo:nil];
//添加观察者 观察通知
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(salephone:) name:@"pricechange" object:nil];
//接受到通知做控制
-(void)salephone:(NSNotification*)noti
{
noti.object
}
//移除观察者
-(void)dealloc
{
// [self removeObserver:self forKeyPath:@"xxx"];
[[NSNotificationCenter defaultCenter]removeObserver:self];
}
//回调、Block
//声明
int (^myBlock) (int a,int b);
//实现(赋值)
myBlock = ^(int a, int b){
return a+b;
};
//声明和实现放在一块
int (^myBlock) (int a,int b) = ^(int a, int b){
return a+b;
};
//调用
int result = myBlock(5,6);
NSLog(@"%d",result);
//直接给函数参数设回调类型
-(void)test:(int(^)(int a,int b))myBlock
{
int res = myBlock(10,10);
}
//调用
[self test:^int(int a, int b) {
}];
[self test:myBlock];
//加__block才能影响到里面
__block int num;
//定义一个回调类型,无返回值,一个参数button
typedef void(^ButtonBlock)(UIButton *button);
//谓词
NSArray *DATA_A =@[类,类,类,类,类];
//设置过滤条件
NSPredicate *newpre = [NSPredicate predicateWithFormat:@"age > 29"];
@"name BEGINSWITH 'x' "
@"name ENDSWITH 'x' "
@"name CONTAINS 'x' "
@"age > 29 || age < 20"
@"name like '?d*' "
//过滤后保存的数组
NSArray *newarray = [DATA_A filteredArrayUsingPredicate:newpre];
//KeyPath
@"dogs.@sum.weight"
@"dogs.@avg.weight"
@"dogs.@min.weight"
@"dogs.@max.weight"
[array valueForKeyPath:@"@sum.floatValue"];
[array valueForKeyPath:@"@avg.floatValue"];
[array valueForKeyPath:@"@max.floatValue"];
[array valueForKeyPath:@"@min.floatValue"];
1、View
1-1)View的属性
//中心点,设置中心点,就不用设置X、Y
view.center
//bounds 以自身为坐标系,改变是以中心为原点改变。
view.bounds = CGRectMake(0, 0, 20, 20);//只能修改大小
//frame 以父视图
view.frame = CGRectMake(100, 100, 200, 200);
//背景颜色
view.backgroundColor
//标签
view.tag
//视图交互,可能会挡住下面的视图
view.userinteractionenabled
//父视图
view.superview
//超过父视图就剪切掉
view.clipstobounds
//透明
view.alpha
//隐藏
view.hidden
//旋转一圈
view.transform = CGAffineTransformRotate(view.transform, M_PI);
//宽放大1.5倍,高放大1.5倍,
view.transform = CGAffineTransformScale(view.transform, 1.5, 1.5);
1-2)View的layer
//设置圆角
[view.layer setCornerRadius:100];
//设置边框
[view.layer setBorderWidth:2.0];
//设置边框的颜色
[view.layer setBorderColor:[[UIColor grayColor] CGColor]];
//设置阴影透明度
[view.layer setShadowOpacity:1.0];
//设置阴影偏移,宽100,高100
[view.layer setShadowOffset:CGSizeMake(100, 100)];
//设置颜色
[view.layer setShadowColor:[[UIColor grayColor] CGColor]];
PS:
//超过父视图,自动剪裁(UIImageView 和UILabel 等一些控件,需要加这句才能setCorn!)
[label.layer setMasksToBounds:YES];
1-3)View的方法
//把子视图View移到最前面
[self.view bringSubviewToFront:view];
//把子视图移到最下层
[self.view sendSubviewToBack:view2];
//插入
[self.view insertSubview:view2 atIndex:1];
[self.view insertSubview:view2 aboveSubview:view1];
[self.view insertSubview:view2 belowSubview:view1];
//所有的子视图
NSArray *array= [self.view subviews];
//视图移除
[view removeFromSuperview];
//根据标签取View,宏定义
[view viewWithTag:1000];
2、UILabel
2-1)UILabel的属性
//内容
label.text
//字体
label.font = [UIFont systemFontOfSize:fontSize]; //系统
label.font = [UIFont fontWithName:@"Times New Roman" size:fontSize]; //Times New Roman体
label.font = [UIFont italicSystemFontOfSize:fontSize]; //斜体
label.font = [UIFont boldSystemFontOfSize:fontSize]; //粗体
//字体默认左对齐
label.textAlignment = NSTextAlignmentLeft;
//换行
label.numberOfLines = 0;
//缺省模式,换行保证一个完整的单词
label.lineBreakMode = NSLineBreakByWordWrapping;
//高亮模式
label.highlighted = YES;
//高亮模式的字体颜色
label.highlightedTextColor = [UIColor redColor];
//阴影颜色
label.shadowColor = [UIColor greenColor];
//阴影偏移量,宽偏移5,高偏移5
label.shadowOffset = CGSizeMake(5, 5);
3、UIButton
3-1)UIButton的属性
//按钮失能
btn.enabled = NO;
//按钮选中
btn.selected = YES;
3-2)UIButton的方法
//按钮创建的类方法
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
//按钮是否选中状态
[button isSelected];
//设置不同状态下的【标题】,有正常、选中、失能等
[btn setTitle:@"点击" forState:UIControlStateNormal];
//设置不同状态下的【标题颜色】,有正常、选中、失能等
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
//设置不同状态下的【图片】,有正常、选中、失能等
[btn setImage:[UIImage imageNamed:@"correct"] forState:UIControlStateNormal];
//设置不同状态下的【背景图片】,有正常、选中、失能等
[btn setBackgroundImage:[UIImage imageNamed:@"1"] forState:UIControlStateNormal];
//按钮当前【标题】(获取用于切换视图,传值等用途)
NSString *titlenormal = [btn titleForState:UIControlStateNormal];
//按钮当前【图片】(获取用于切换视图,传Image等用途)
[btn currentImage]
//按钮当前【背景图片】(获取用于切换视图,传Image等用途)
[btn currentBackgroundImage]
//微调标题的位置(既然要调整,感觉还是用layout吧!)
[btn setTitleEdgeInsets:UIEdgeInsetsMake(20, -20, 0, 0)];
//按钮添加触摸事件
[btn addTarget:self action:@selector(clickAction:) forControlEvents:UIControlEventTouchUpInside];
//实现方法
-(void)clickAction:(UIButton*)button
{
NSLog(@"点击了");
}
4、UITextField
4-1)UITextField的属性
//清除模式是否一直显示
tfView.clearButtonMode = UITextFieldViewModeAlways;
//自制清除模式,如密码显示与否,小眼睛
tfView.rightView = view;
tfView.rightViewMode = UITextFieldViewModeAlways;
//自制特定的键盘,如银行账号登录,
tfView.inputView = view;
tfView.inputAccessoryView = view;
//键盘类型,如电话号码,不让输字母
tfView.keyboardType = UIKeyboardTypeDefault;
//键盘的颜色
tfView.keyboardAppearance = UIKeyboardAppearanceDark;
//边界风格
tfView.borderStyle = UITextBorderStyleRoundedRect;
//内容
tfView.text = @"0";
4-2)UITextField的方法
//第一响应,切换视图后自动跳出
[tfView becomeFirstResponder];
(View的方法)
//结束编辑,如输入完成,点击其他地方,按键自动缩回
-(void)touchesBegan:(NSSet
{
[self.view endEditing:YES];
}
4、导航栏
4-1)、导航栏
//隐藏navigationBar(它推过的所有的VC共用。用继承View的hidden属性,隐藏不了!)
self.navigationController.navigationBarHidden=YES;
//加载提示,原生,用得少
self.navigationItem.prompt = @"加载中...";
//系统的BarButton
UIBarButtonItem *item1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave target:self action:nil];
//设置左边BarButton
self.navigationItem.leftBarButtonItems = @[left_Item1,backItem];
self.navigationItem.leftBarButtonItem = backItem;
//设置右边BarButton
self.navigationItem.rightBarButtonItem = self.editButtonItem;
//navigationBar的背景颜色
self.navigationController.navigationBar.backgroundColor = [UIColor greenColor];
//代理,VC将要出现,VC出现
self.navigationController.delegate = self;
//当前显示的VC
self.navigationController.visibleViewController;
//某个导航栏里的顶层VC
self.navigationController.topViewController;
//创建
UINavigationController *navi = [[UINavigationController alloc]initWithRootViewController:rootVC];
//推出新的视图,返回用POP,只有Controller才能推。View推不了
[self.navigationController pushViewController:root animated:YES];
//返回,Pop
[self.navigationController popToRootViewControllerAnimated:YES];
//navigation 推过的所有VC
NSArray *vcArray = [self.navigationController viewControllers];
//返回到指定的VC
[self.navigationController popToViewController:vcArray[1] animated:YES];
//navigationBar的背景图片
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"image1"] forBarMetrics:UIBarMetricsDefault];
(其他)
//设置了title,会自动变成navigationBar的名字
self.title = @"表视图控制器”;
4-2)、工具栏ToolBar
//自定义工具栏
UIToolbar *toolbar = [[UIToolbar alloc]initWithFrame:CGRectMake(0, 0, WITDH, 44)];
//覆盖
[self.navigationController.toolbar addSubview:toolbar];
//设置工具栏的BarButton
toolbar.items = @[item1,fixspace,item2,fixspace,item3,fixspace,item4];
//隐藏
self.navigationController.toolbarHidden = NO;
//填充空的地方
//Flexible 灵活,柔韧,有弹性
UIBarButtonItem *flexibleSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
//固定间距
UIBarButtonItem *fixedSpace = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:self action:nil];
fixspace.width =120.0;
5、分栏
//分栏子控制器(主页VC)
MainViewController *mainCtr = [[MainViewController alloc]init];
//设置 title 后,会在 分栏、导航栏 显示
mainCtr.title = @"第一界面";
//分栏子控制器,在分栏显示的item,有自己的title,不再和导航栏共用
UITabBarItem *mainItem = [[UITabBarItem alloc]initWithTitle:@"首页" image:[UIImage imageNamed:@"tabbar_home"] selectedImage:[UIImage imageNamed:@"tabbar_home_selected"]];
//覆盖上去
mainCtr.tabBarItem = mainItem;
//创建分栏控制器
UITabBarController *tabBarCtr = [[UITabBarController alloc]init];
//设置子控制器
[tabBarCtr setViewControllers:@[mainCtr,shopCtr,mydetailCtr,aboutCtr,moreCtr]];
//把分栏控制器放到rootVC显示,类似的还有导航栏
self.window.rootViewController = tabBarCtr;
//选中的渲染颜色
tabBarCtr.tabBar.tintColor = [UIColor cyanColor];
//分栏的背景颜色
tabBarCtr.tabBar.barTintColor = [UIColor blackColor];
//tabbar样式
tabBarCtr.tabBar.barStyle = UIBarStyleDefault ;
//设置字体大小,样式(+appearance,改变全局属性)
[[UITabBarItem appearance] setTitleTextAttributes:@{NSFontAttributeName:[UIFont boldSystemFontOfSize:13]} forState:UIControlStateNormal];
//大的背景图片
tabBarCtr.tabBar.backgroundImage = [UIImage imageNamed:@"image3"];
//选中的背景图片
tabBarCtr.tabBar.selectionIndicatorImage = [UIImage imageNamed:@"menu_tab_bak"];
//根据Index切换分栏,可以自制分栏控制器图标等用途
self.selectedIndex
//超过五个界面 可以拖拽调整!
//分栏子控制器的子视图(分栏->主页->主页详情)
mainDetailViewController *mainDetail = [[mainDetailViewController alloc] init];
//当推出视图时隐藏分栏控制器
mainDetail.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:mainDetail animated:YES];
5、UIScrollView
5-1)、UIScrollView的属性
//可滑动的总宽、高
scrollView.contentSize = CGSizeMake(WIDTH*self.imgArr.count, 0);
//自动分页
scrollView.pagingEnabled = YES;
//反弹效果
scrollView.bounces = NO;
//代理(基本要,监测滑动减速、停止)
scrollView.delegate = self;
//锁定方向,不能斜着拉
scrollView.directionalLockEnabled = NO;
//当前偏移(可以用来设置偏移量,让scrollView滚动)
scrollView.contentOffset
//横向条显示
scroll.showsHorizontalScrollIndicator = NO;
//竖向条显示
scroll.showsVerticalScrollIndicator = YES;
//滚动使能
scroll.scrollEnabled = NO;
//滚动条颜色
scroll.indicatorStyle = UIScrollViewIndicatorStyleWhite;
//内边距
scroll.contentInset = UIEdgeInsetsMake(50, 0, 0, 0);
//拖动条内边距
scroll.scrollIndicatorInsets = UIEdgeInsetsMake(50, 0, 0, 0);
5-2)、UIScrollView的方法
//有动画效果的滑动
[scroll setContentOffset:CGPointMake(WIDTH, 0) animated:YES];
//代理,滑动减速(其实,这里可以直接和属性判断,下面只能区别TableView和scrollView)
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
if ([scrollView isMemberOfClass:[UIScrollView class]]) {
_pageCtr.currentPage = scrollView.contentOffset.x/WIDTH;
}
}
6、表视图
6-1)、table的属性
//表头(只有一个,组头有多个)
tableView.tableHeaderView = view;
//行高,默认是44
tableView.rowHeight = 100.0;
//分割线风格
tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
//分割线颜色
tableView.separatorColor = [UIColor redColor];
6-2)、table的方法
//重载(更新数据源后,需要重载)
[tableView reloadData];
6-3)、cell的属性
//内容
cell.textLabel.text = @"xxx";
//详细内容
cell.detailTextLabel.text = @"xxx";
//图片,png可以没后缀,jpg一定要有,严谨起见,最后连png也写出来吧!
cell.imageView.image = [UIImage imageNamed:@"xxx"];
//点击不会有灰色的
cell.selectionStyle = UITableViewCellSelectionStyleNone;
//右边的箭号
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
//自定义右边的View,最常见的情况是个箭号,表示加载更多
cell.accessoryView = view;
//注意,一般添加用contentView,和Cell直接添加有点区别
[cell.contentView addSubview:view];
(这里是UILabel的属性)
//不限行 = 自动换行,
cell.textLabel.numberOfLines = 0;
//字体样式、大小设置,
cell.textLabel.font
(其他相关)
indexPath.row
indexpath.section
6-4)、cell的自定义
6-4-1)、cell的重写父类方法
-(void)layoutSubviews
{
[super layoutSubviews];
self.imageView.frame =;
self.titleLabel.frame = ;
self.titleLabel.textAlignment = NSTextAlignmentCenter;
}
6-4-2)、cell的重写 initWithFrame: reuseIdentifier:
7、UIPageControl
7-1)、UIPageControl的属性
//多少页(小圆点)
_pageCtr.numberOfPages
//当前页
_pageCtr.currentPage
//小圆点的颜色
_pageCtr.pageIndicatorTintColor = [UIColor redColor];
//当前选中的小圆点的颜色
_pageCtr.currentPageIndicatorTintColor = [UIColor blueColor];
//注意!如果加在scrollView上,会跟着移没掉,要和scrollView同一个父级,初级错误。
[self.view addSubview:_pageCtr];
7-2)、UIPageControl的方法
//注意:page变化不是通过代理,而是和按钮一样:事件。
[page addTarget:self action:@selector(choosePage:) forControlEvents:UIControlEventValueChanged];
//可以通过page切换相应的界面
-(void)choosePage:(UIPageControl*)page
{
NSLog(@"%ld",page.currentPage);
}
7、警告窗
//创建一个警告窗控制器,及名字、消息、弹窗类型
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" message:@"确定收藏?" preferredStyle:UIAlertControllerStyleAlert];
//警告按钮1
UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action)
{
}];
//警告按钮2
UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action)
{
}];
//添加警告按钮1、2
[alert addAction:action1];
[alert addAction:action2];
//弹出
[self presentViewController:alert animated:YES completion:^{
}];
8、类的自定义Copy、深拷贝
//.h签协议
//.m设置要复制的值
- (id)copyWithZone:(nullable NSZone *)zone
{
NSLog(@"复制对象调用了!");
Person *person = [[self class] allocWithZone:zone];
person.name = [_name mutableCopy];
person.age = _age;
person.bookArray = [_bookArray mutableCopy];
return person;
}
//在别的类调用
Person *person2 = [person1 copy];
9、类的自定义编码
//.h签协议
//.m
//设置要编码的值
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:_name forKey:NAME];
[aCoder encodeInteger:_age forKey:AGE];
[aCoder encodeObject:_hobby forKey:HOBBY];
}
//.m
//设置要解码的值
- (nullable instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
if (self)
{
self.name = [aDecoder decodeObjectForKey:NAME];
self.age = [aDecoder decodeIntegerForKey:AGE];
self.hobby = [aDecoder decodeObjectForKey:HOBBY];
}
return self;
}
//在别的类调用
//地址
NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Desktop/test.txt"];
//归档(编码)
[NSKeyedArchiver archiveRootObject:atext toFile:path]
//读取
[NSKeyedUnarchiver unarchiveObjectWithFile:path];
其他:
1、
重写,父类有声明,不必再声明
2、
@private 私有:只有类定义内部可访问
@protected 保护:只有类本身和子类的定义里可访问
@public 公有:程序的任何位置都可访问
3、
协议
@required
@optional
4、
nonatomic
copy assign
附录:
1-1、字符串:
1)、创建
1-1)、
[[NSString alloc]init];
1-2)、类方法
[NSString stringWithString:string];
[NSString stringWithFormat:@"%@",string2];
1-3)、对象方法
[[NSString alloc]initWithString:string];
[[NSString alloc]initWithFormat:@"%@",string1];
2)、格式化拼接
[NSString stringWithFormat:@"%@%@",string3,string4];
3)、比较
[string3 isEqualToString:string4];
[string3 caseInsensitiveCompare:string4];
[string3 compare:string4]
4)、长度
string.length;
[string length];
5)、大小写变化
[string uppercaseString];
[string lowercaseString];
[string capitalizedString];
6)、追加
[string4 stringByAppendingString:string3];
7)、查找
[string rangeOfString:@"world"];
[string hasPrefix:@“www”];
[string hasSuffix:@“com”];
8)、截取
[string substringFromIndex:2];
[string substringToIndex:5];
[string substringWithRange:range];
9)、跟基本数据类型转换
[NSString stringWithFormat:@"%d",a];
[NSString stringWithFormat:@"%f",b];
[NSString stringWithFormat:@"%c",c];
[strnum1 intValue];
[strnum2 floatValue];
const char *cc = [strchar UTF8String];
10)、取元素
[newstring characterAtIndex:3]
11)、字符串是否包含
[mString containsString:@"hello"];
1-2、可变字符串:
1)、创建
1-1)、类方法
[NSMutableString stringWithString:string];
[NSMutableString stringWithFormat:@"%@",string];
1-2)、对象方法
[[NSMutableString alloc]initWithString:string];
[[NSMutableString alloc]initWithFormat:@"%@",string];
2)、替换
[mString replaceCharactersInRange:NSMakeRange(2,2) withString:@"xxx"];
3)、插入
[mString insertString:@"aaa" atIndex:1];
4)、删除
[mString deleteCharactersInRange:NSMakeRange(1, 3)];
5)、追加
[S_1 appendString:@"QAZ"];
[S_1 appendFormat:@"%@",S_1];
2-1、数组:
1、创建
1-1)、
NSArray *array1 = [[NSArray alloc]init];
array1 = @[@"here",@"is",@"China"];
1-2)、类方法
NSArray *array2 = [NSArray arrayWithObject:@"hello"];
NSArray *array3 = [NSArray arrayWithObjects:@"here",@"is",@"china", nil];
NSArray *array4 = [NSArray arrayWithArray:array1];
1-3)、对象方法
NSArray *array5 = [[NSArray alloc]initWithObjects:array1,array5, nil];
NSArray *array6 = [[NSArray alloc]initWithObjects:@"here",@"is",@"china", nil];
NSArray *array7 = [[NSArray alloc]initWithArray:array1];
2)、取下标元素
array5[2];
[array5 objectAtIndex:2];
3)、长度
array5.count
[array5 count]
4)、是否包含某个元素
[array7 containsObject:@"hello”];
5)、通过元素获取下标
[array10 indexOfObject:@"1123”];
6)、数组连接成字符串,字符串分割成数组
NSString *string = [array1 componentsJoinedByString:@","];
NSArray *array2 = [string componentsSeparatedByString:@","];
7)、访问第一个、最后一个元素
[array1 firstObject];
[array1 lastObject];
8)、数组遍历
for (NSString *str in array1)
{
NSLog(@"->%@",str);
}
9)、追加元素,生成新的数组
NSArray *array8 = [array1 arrayByAddingObject:@"hello"];
NSArray *array9 = [array1 arrayByAddingObject:array3];
NSArray *array10 = [array1 arrayByAddingObjectsFromArray:array3];
2-2、可变数组:
1、创建
NSMutableArray *mArray = [[NSMutableArray alloc]initWithObjects:@"hello",@"world",@"china", nil];
2、添加元素
2-1)、
[mArray addObject:@"American"];
2-2)、
NSArray *array = [[NSArray alloc]initWithObjects:@"hi",@"hei", nil];
[mArray addObjectsFromArray:array];
3、删除元素
[mArray removeAllObjects];
[mArray removeObject:@"here"];
[mArray removeObjectAtIndex:3];
[mArray removeLastObject];
[mArray removeObjectsInArray:arraytest];
[mArray removeObjectsAtIndexes:set1];
[mArray removeObject:@"here" inRange:NSMakeRange(0, 3)];
[mArray removeObjectsInRange:NSMakeRange(1, 4)];
4、交换位置
[mArray exchangeObjectAtIndex:0 withObjectAtIndex:3];
5、替换
[mArray replaceObjectAtIndex:0 withObject:@"objxxx"];
6、插入
[mArray3 insertObject:@"iiiii" atIndex:1];
7、遍历
int i=0;
for (NSString *str in mArray)
{
NSLog(@"%@",str);
NSLog(@"%d",i++);
}
3-1、字典:
1)、创建
1-1)、
NSDictionary *dic = [[NSDictionary alloc]init];
dic = @{
@"name":@"xiaoming",
@"age":@"18",
@"sex":@"男",
};
1-2)、类方法
NSDictionary *dic1 = [NSDictionary dictionaryWithDictionary:dic];
1-3)、对象方法
NSDictionary *dic2 = [[NSDictionary alloc]initWithObjectsAndKeys:@"xiaohong",@"name",@"20",@"age",@"男",@"sex", nil];
NSDictionary *dic3 = [[NSDictionary alloc]initWithDictionary:dic2];
2)、长度
dic2.count
[dic2 dic2];
3)、根据key获取value
[dic objectForKey:@"age"]
dic[@"age"]
4)、取出所有的key
NSArray *keyArray = [dic allKeys];
5)、取出所有的value
NSArray *valueArray = [dic allValues];
3-2、可变字典:
1、创建
1-1)、
NSMutableDictionary *mDic1 = [NSMutableDictionary dictionary];
1-2)、对象方法
NSMutableDictionary *mDic = [[NSMutableDictionary alloc]initWithObjectsAndKeys:@"xiaoming",@"name",@"19",@"age",@"男",@"sex", nil];
2)、添加元素
[mDic setObject:@"80kg" forKey:@"weight"];
3)、删除元素
[mDic removeObjectForKey:@"age"];
[mDic removeObjectsForKeys:array];
[mDic removeAllObjects];
4)、遍历
for (NSString *key in mDic)
{
NSLog(@"%@",mDic[key]);
}
4、集合
1)、初始化
1-1)、
NSSet *set = [[NSSet alloc]initWithObjects:@"1",@"2",@"3",@"4",@"3", nil];
1-2)、可变集合初始化
NSMutableSet *mSet = [NSMutableSet set];
2)、可变添加对象
[mSet addObject:numobject];
3)、个数
newSet.count
[newSet count]
4)、任意取! 但不保证随机!
[set anyObject]
5)、是否元素全相同
[set isEqualToSet:newSet]
6)、是否包含
[newSet isSubsetOfSet:set]
7)、消除数组相同元素
7-1)、建个数组
NSArray *array = [NSArray arrayWithObjects:@"3",@"4",@"3", nil];
7-2)、取数组的对象初始化
NSSet *newSet = [NSSet setWithArray:array];
7-3)、又把set的对象给数组,自动消除重复
NSArray *newArray = [newSet allObjects];
5、枚举
1)、将 集合set 的值给枚举
NSEnumerator *enumtor = [set objectEnumerator];
2)、将枚举里的对象一一打印
for (NSObject* obj in enumtor)
{
NSLog(@"-->%@",obj);
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之IOS频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号