OC 基本知识点总结

OC 基本知识点总结



1、类是具有公共特征(实例变量)和行为(方法)的事物的抽象,对象是某个类的实例化。

2、万事万物皆为对象。

3.​在oc中只有公共实例变量可以在类外使用->访问。

4.面向过程编程和面向对象编程的区别:​

​5.接口部分:@interface......@end;实现部分:@implementation.......@end

6.创建对象:为对象分配空间,再初始化对象

eg:Stduent *s = [[Studentalloc]init];//alloc是类方法,init是实例方法

7.OC中是使用的消息传递机制[recevermessage];​//recever接收者,message:方法(消息)

​8.实例变量可见度:

​9.设置器:set方法:返回值为空,有一个要传入的形参

访问器:get方法:返回值是对应的实例变量的类型,无形参

​10.#import"":导入自己定义的包;#import<>:导入类库中的包,但容易出现循环导入头文件的问题;用@class后的字符串作为类名,但未导入接口内容,不会出现循环嵌套的问题。注意:当几个类在各自的类中要使用其他类的实例变量,则使用@class防止循环嵌套。

11.子类可以继承父类所有的行为和特征。

12.字符串

创建和初始化方法:

一:NSString *str = [[NSStringalloc]initWithString:字符串];​

二:NSString *str = [[NSStringalloc]init];​

str = @字符串

三:​NSString *str =[ NSStringstringWithFormat:@一种格式];

四:NSString *str = [[NSStringalloc]initWithFormat:@一种格式];

五:NSString *str = [NSString stringWithStirng:字符串];

​获取字符串长度:NSUInteger length =[str length];返回的是一个无符号的长整型数,用%lu打印

获取子字符串:subStringToIndex、subStringFromIndex、subStringWithRange、

NSRange range =NSMakeRange(3,5);

拼接字符串:stringByAppendingString、stringByAppendingFormat

替换字符串:stringByReplacingOccurrencesOfString: withString、

stringByReplacingCharctersInRange:withString、

​字符串相等isEqualToStirng

​字符串⽐比较。compare

创建可变字符串:NSMutableString *str = [[NSMutableStringalloc]init]​;

[strappendString:字符串]​;

13.数组:OC中数组存储的元素都是对象

 

获取元素个数:count,返回的是一个长整型的数

根据index获取对象:indexOfArray

14.数值对象:基本数和​对像之间的转换

NSNumber *n = [[NSNumberalloc]initWithInt]​:将一个整型数转换为对象

​[nintValue];//将一个对象转换为int型

NSValue :NSNumber的子类,将结构体和指针进行转换

NSRange range =NSMakeRange(3,5);//定义一个范围

NSValue *value = [NSValuevalueWithRange:range];​

​总结:可变对象是不可变对象的子类,包含父类的方法,并可以增删改,但可变对象调用了不可变对象的方法,则就有返回值,需要有接收对象。

15.字典:字典是以键值对(key:value)存储的,字典是无序的​,键唯一

   //字典的字面量

//       NSDictionary *dic3 = @{

@"key1":@"value1",//                          

  @"key2":@"value2",//                             

@"key3":@"value3"};

 //获取字典的所有key值

//       [dic3 allKeys];  //

获取字典里的所有value值//       

[dic3allValues];//       

 //根据key值修改一个元素//      

//修改元素的时候,有key就修改对应的value值,没有的话就添加一个。//   

   //有则改之,无则添加。

用 setObject  forKey

 //字典的遍历

 //将一个字典中的所有key值放入一个数组中,再通过数组遍历取得每个key值,再通过key值取相应的value值

16.集合:NSSet

随机获取一个元素:anyObject

 NSMutableSet *anOther = [NSMutableSetsetWithObject:@"ppija"];
​​​ //将接收的set1清空,把anOther中的对象赋给set1

//       [set1setSet:anOther];//     

NSCountedSet 在set的基础上增加了计数功能

 //方法二:

       //快速遍历对于字典来说每次获取的都是key值//     

  for (NSString *str in d){//          

NSLog(@"key=%@,value=%@",str,d[str]);//   

   }

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

//     

17. //枚举器,是一个工具,帮我们从数组中将元素逐个取出//    

   NSEnumerator*enum1 = [arrobjectEnumerator];//      

idobj;//      

while (obj = [enum1 nextObject])

{//           NSLog(@"正在遍历:%@",obj);//    

  }//       NSLog(@"结束:%@",[enum1nextObject]);//       

18.排序:

不可变对象调用:sortedArrayUsingSelector:@selector​

可变对象调用:sortUsingSelector:@selector

19.Block语法:调用匿名函数,和函数指针的使用情况相似

(返回值类型)(^block变量)(参数)=^返回值类型(可省略)(参数){执行语句};

​sortedArrayUsingComparator:^NSComparisonResult(idobj1, id obj2)

sortUsing​Comparator:^NSComparisonResult(id obj1,id obj2)

​19.NSDate的使用:

​20.Category:也叫做分类或类目。类的拓展:为类添加新方法,成为类的一部分

21.Exten​sion:为类添加私有方法或实例变量,只能在类内使用,相当于把声明移到了实现文件中。Extension针对的是⾃己的类,必须有源代码的类

​22.Protocal:一套标准(一堆方法),只有.h文件

接受协议的对象实现协议中的方法,​协议中默认的是必须完成的方法,@optional是可选择的。

代理:帮你完成一些任务的对象。接收协议的对象,该对象完成协议的方法定义。

​协议和代理经常一起使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值