object-c所有知识点集合

//

//  main.m

//  OC所有知识点集合

//

//  Created by apple on 15/11/24.

//  Copyright © 2015年 apple. All rights reserved.

//

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {

@autoreleasepool {

//1.字符串

//1.字符串的截取(三个位置的截取)

NSString *str1=@"abcdefg";

//从头截取3个字符

NSLog(@"%@",[str1 substringToIndex:3]);

//从第5个位置截取直到最后

NSLog(@"%@",[str1 substringFromIndex:5]);

//从第3个位置截取3个字符

NSLog(@"%@",[str1 substringWithRange:NSMakeRange(3, 3)]);

//            2.比较两个字符串

NSString *str2=@"ads";

NSString *str3=@"fgh";

NSComparisonResult result=[str2 compare:str3];

if (result==NSOrderedSame) {

NSLog(@"str2=str3");

}else if (result==NSOrderedAscending){

NSLog(@"str2<str3");

}else if(result==NSOrderedDescending){

NSLog(@"str2>str3");

}

//            3.字符串转化成数组,数组转化成字符串

NSString *str4=@"a,b,c,d,e";

NSArray *arr=@[@"a",@"b",@"c",@"d",@"e"];

NSArray *arr1=[str4 componentsSeparatedByString:@","];

NSString *str5=[arr componentsJoinedByString:@","];

for (NSString *str in arr1) {

NSLog(@"字符串转化成数组%@ ",str);

}

NSLog(@"数组转化成字符串%@",str5);

//            4.创建可变字符串,并赋值

NSMutableString *str6=[[NSMutableString alloc]init];

str6=[NSMutableString stringWithString:str1];

//            5.插入字符

[str6 insertString:@"haha" atIndex:3];

NSLog(@"插入字符%@",str6);

//            6.删除字符

[str6 deleteCharactersInRange:NSMakeRange(3, 2)];

NSLog(@"删除字符%@",str6);

//            7.查找并删除

NSRange a=[str6 rangeOfString:@"ha"];

if (a.location!=NSNotFound) {

[str6 deleteCharactersInRange:a];

}

NSLog(@"查找并删除%@",str6);

//            8.重设字符串

[str6 setString:@"123"];

NSLog(@"重设字符串%@",str6);

//            9.替换字符串

[str6 replaceCharactersInRange:NSMakeRange(1, 1) withString:@"123456"];

NSLog(@"替换字符串%@",str6);

//    10.连接字符串

NSString* string; // 结果字符串
NSString* string1, string2; //已存在的字符串

  • 1. string = [NSString initWithFormat:@"%@,%@", string1, string2 ];
  • 2. string = [string1 stringByAppendingString:string2];
  • 3 . string = [string stringByAppendingFormat:@"%@,%@",string1, string2];

//2.数组

//

//            1.创建不可变数组,并输出所有元素

NSArray *arr2=@[@"lv",@"23"];

for (NSString *str in arr2) {

NSLog(@"创建不可变数组,并输出所有元素%@",str);

}

//            2.创建可变数组,将不可变数组赋值到可变数组中

NSMutableArray *arr3=[[NSMutableArray alloc]init];

arr3=[NSMutableArray arrayWithArray:arr2];

for (NSString *str in arr3) {

NSLog(@"创建可变数组,将不可变数组赋值到可变数组中%@",str);

}

//            3.增加元素,删除元素

[arr3 addObject:@"haha"];

for (NSString *str in arr3) {

NSLog(@"增加元素%@",str);

}

[arr3 removeObject:@"lv"];

for (NSString *str in arr3) {

NSLog(@"删除元素%@",str);

}

//            4.将数组中的元素进行排序

arr=[arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

NSComparisonResult result=[obj1 compare:obj2];

return result==NSOrderedAscending;

}];

for (NSString *str in arr) {

NSLog(@"将数组中的元素进行排序%@",str);

}

//            5.找到数组中的元素,并删除

for (int i=0; i<[arr3 count]; i++) {

if ([arr[i] isEqualToString:@"23"]==NO) {

[arr3 removeObject:@"23"];

}

}

for (NSString *str in arr3) {

NSLog(@"找到数组中的元素,并删除%@",str);

}

//3.字典

//            1.创建不可变字典,遍历输出key值和value

NSDictionary *dic=@{@"name":@"lv",@"age":@"21"};

//            2.用枚举类型输出key 和value

NSEnumerator *key=[dic keyEnumerator];

for (NSString *str in key) {

NSLog(@"key=%@",str);

}

NSEnumerator *value=[dic objectEnumerator];

for (NSString *str in value) {

NSLog(@"value=%@",str);

}

//            3.创建可变字典,并赋值,增加键值对,删除键值对

NSMutableDictionary *dic1=[NSMutableDictionary dictionaryWithDictionary:dic];

[dic1 setObject:@"nan" forKey:@"sex"];

NSLog(@"增加键值对%@",dic1);

[dic1 removeObjectForKey:@"name"];

NSLog(@"删除键值对%@",dic1);

//            4.将字典放入数组元素中,增加一条数据,并删除某一条数据

NSMutableArray *aee=[[NSMutableArray alloc]init];

[aee addObject:dic1];

for (NSString *str in aee) {

NSLog(@"将字典放入数组元素中%@",str);

}

NSDictionary *dic3=@{@"name":@"bin",@"age":@"22"};

[aee addObject:dic3];

for (NSString *str in aee) {

NSLog(@"增加一条数据%@",str);

}

//            5.按照某一个键来排序

NSSortDescriptor *age=[NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];

NSLog(@"%@",[aee sortedArrayUsingDescriptors:[NSArray arrayWithObjects:age, nil]]);

//4.集合

//            1.创建不可变集合,并输出

NSSet *set=[NSSet setWithObjects:@"1",@"2",@"3", nil];

NSLog(@"创建不可变集合,并输出%@",set);

//            2.判断对象是否在集合中

if ([set containsObject:@"1"]==YES) {

NSLog(@"找到了");

}

//            3.创建可变集合并输出,添加元素,

NSMutableSet *set1=[NSMutableSet setWithSet:set];

NSLog(@"创建可变集合并输出,并输出%@",set1);

[set1 addObject:@"4"];

NSLog(@"添加元素,并输出%@",set1);

//            4.求两个集合的交集和并集

NSMutableSet *set3=[NSMutableSet setWithSet:set];

//[set3 intersectsSet:set1];

[set3 intersectsSet:set1];

NSLog(@"两个集合的交集%@",set3);

[set3 unionSet:set1];

NSLog(@"两个集合的并集%@",set3);

//            5.删除某个元素

[set3 removeObject:@"3"];

NSLog(@"删除某个元素%@",set3);

//            6.集合中求某个元素的个数

NSCountedSet *set4=[NSCountedSet setWithSet:set3];

[set4 addObject:@"2"];

[set4 addObject:@"2"];

NSLog(@"集合中求某个元素的个数%lu",[set4 countForObject:@"2"]);

}

return 0;

}

时间: 2024-10-11 02:17:28

object-c所有知识点集合的相关文章

如果一个Object对象可能是集合或者数组那么如何对其进行迭代

需求:一个方法传入的参数是Object类型(假设对象为“items”,使用Object类型也是为了使用多态而增加方法复用性),但已知这个Object对象可能是集合,包括Collection和Map,也可能是数组,包括对象类型数组和基本数据类型数组,那么如何将这个对象中的元素进行迭代,同时添加进一个集合中(我们不关心添加迭代出来的值是什么类型). 分析:由于这个Object对象(假设为items)可能是Collection集合,也可能是Map集合,可能是对象类型数组,还可能是基本数据类型数组,但不

fullcalendar日历控件知识点集合

1.基本的语法: 首先,fullcalendar和JQUERY一样,以面向对象的方式来组织代码.当然,这里的面向对象不过指能够把整个fullcalendar理解为一个类,这个类里包含有非常多的属性.方法.托付(函数回调)作为成员变量.通过为这些成员变量赋值,就可以实例化出一个符合自己需求的fullcalendar实例出来,即终于在浏览器里渲染出的日历.换句话说,我们所做的绝大多数工作就是依照fullcalendar的语法约定去配置出一个符合我们需求的fullcalendar实例.除非对于极少的特

iOS知识点集合

一.前言部分 文中的问题多收集整理自网络,不保证100%准确,还望斟酌采纳. 1.怎样防止指针的越界使用问题? 答案: 1 .防止数组越界,必须让指针指向一个有效的内存地址, 2. 防止向一块内存中拷贝过多的内容 3. 防止使用空指针 4 .防止改变const修改的指针 5. 防止改变指向静态存储区的内容 6. 防止两次释放一个指针 7. 防止使用野指针. 2.http请求方式有哪些? 答案: 1)GET 2)HEAD 3)PUT 4)DELETE 5)POST 6)OPTIONS 3.uivi

php知识点集合

---------------------------------------------------------           PHP知识大全 --------------------------------------------------------- 1. 变量如何定义?如何检查变量是否定义?如何删除一个变量?怎样检测变量是否设置? $定义   isset()// 检测变量是否设置 defined()// 检测常量是否设置 unset()//销毁指定的变量 empty()// 检

javascript 相关小的知识点集合

本文主要是列出一些javascript 相关的,不限于javascript的,容易记错或者遗忘的小知识,小技巧. 1.javascript中的false 在 JavaScript,常见的 false 值: 0, '0', +0, -0, false, '',null,undefined,NaN 要注意空数组([])和空对象({}): console.log([] == false) //true console.log({} == false) //false console.log(Boole

C#小知识点集合

1.修改字体颜色 //修改字体颜色 SolidColorBrush brushred = new SolidColorBrush();//创建对象 brushred.Color = Colors.Red;//调用方法 2.注册事件和消息传递 Messenger.Default.Register<string>(this, "IsChange", TextColor);//注册事件 后 Messenger.Default.Send<string>(name, &q

Java中一些零碎知识点集合(后续补充)

-----------------------------------关于封装------------------------------------- 封装原则 将不需要对外提供的内容隐藏起来. 把属性隐藏,提供公共方法对其进行访问.之所以对某些信息进行封装然后提供公共接口让外人进行访问,是因为可以对访问操作方式进行控制,来规范用户输入的数据,限制不合理信息,提高代码的健壮性. -----------------------------------构造函数方法-----------------

Android琐碎知识点集合

1.最近发现android studio更新之后用的v7包,每次创建Activity的时候自动继承的是AppCompatActivity,很不舒服,还是习惯Activity.没什么大的毛病,毕竟google的新包嘛.但是有一个还是影响的,我遇到过一次如果继承的是AppCompatActivity,那么隐藏标题栏会失效.也就是这句代码不起作用,而且引起崩溃this.requestWindowFeature(Window.FEATURE_NO_TITLE);不知道为啥,我重新继承Activity就好

【CSS 小知识点集合】

替换元素 和 非替换元素 替换元素就是平常 看到的 input img textarea select这些都是替换元素,之所以叫替换元素,他们都是没有实际内容的,都是根据标签和属性来判断渲染些什么东西. 非替换元素就是 div p 这些,浏览器根据内容直接显示出来. 行内替换元素和行内非替换元素的区别 行内替换元素可以设置宽高和边距的,比如img.行内非替换元素设置不了盒模型属性 比如span 关于viewport 每个手机都有自己的分辨率,有自己的物理长度(4.7寸 5.5寸) 对角线上的分辨