Objective-C 语法
吧Category使用场景:
-类包含了很多个方法的实现,而这些方法需要不同的团队成员来实现。
-当你在使用基础类库中的类时,不想集成这些类,只想添加一些方法时。
-Category能访问原始类的实例变量,但是不能添加实例变量,如果想添加实例变量,那么就要通过创建继承子类来实现。
-Category实现文件中的实例方法,只要你不去调用它,它就不需要实现所有声明中的所有方法。
block :
代码块存储的数据是一个函数体 ,"^"脱字符,是代码块的语法标记,
代码块中使用局部变量,必须要在局部变量中添加关键字_block;
KVO:基于键值的观察者,主要用于视图交互方面,比如界面的某些数据发生变化了,界面也要跟着变化,KVO实现两个对象的直接同步(model,view)。只有通过键值编码改变的值(KVO),才会调用观察者注册的方法。
NSDictionary:不可变的词典
[NSDictionary dictionaryWithObjectsAndKeys:..] : 使用键值对直接创建词典对象,结尾必需使用nil标志结束。
example: NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"",@"",nil];
[dictionary count]: 得到词典的键值对数量。
[dictionary keyEnumerator]: 将词典的所有key储存在NSEnumerator中.
example:
NSEnumerator *enumeratorKey = [dictionary keyEnumerator];
for (NSObject *object in enumeratorObject) {
NSLog(@"value:%@", object);
}
[dictionary objectEnumerator]: 将词典的所有value储存在NSEnumerator中
[dictionary objectForKey:key]: 通过传入key对象可以拿到当前key对应储存的值
NSMutableDictionary:可变词典。
NSMutableDictionary 是NSDictionay的子类,所以继承了NSDictionay的方法。
[dictionary setObject: forKey:] :向可变的词典动态的添加数据 。
[dictionary removeAllObjects..] : 删除掉词典中的所有数据。
[dictionary removeObjectForKey..] :删除掉词典中指定key的数据。
NSArray:不可变的数组
[array count] : 数组的长度
[array objectAtIndex 0]: 传入数组脚标的id 得到数据对象。
NSArray *array = [NSArray arrayWithObjects:@"",@"",nil]; 创建数组对象并初始化赋值。
NSMutaleArray:可变的对象数组
[NSMutableArray arrayWithCapacity:3] :初始化可变数组对象的长度。
[array addObject:] : 向可变数组尾部添加数据对象。
[array addObjectsFromArray:] :向可变数组尾部添加一个数组对象。
[muArray insertObject:@"" atIndex:]; 向可变数组的指定位置添加对象。
for (NSObject * object in muArray) {
NSLog(@"数组对象:%@", object);
}
NSRange range = NSMakeRange(0,6); 设置一个范围为 0 到 6 之间。
[array removeObject:obj inRange:range] : 设置在一个范围内删除数据,如果这个范围内没有删除的这个对象则不会删除任何东西。例子中因为obj对象在 数组 0 到 6的范围内,所以obj就被删除掉了。
[muArray replaceObjectAtIndex: withObject:@""]; 替换某索引值对应的对象。
isKindeOfClass,isMemberOfClass,id 动态数据类型:
对象在运行时获取其类型的能力,成为内省,内省有很多种方法实现:
判断对象类型:
-(BOOL) isKindOfClass: classObj判断是否是这个类或者这个类的子类的实例。
-(BOOL) isMemberOfClass: classObj 判断是否是这个类的实例,和父类没有关系。
[string1 hasPrefix:@"aaa"]匹配以“aaa”开头的字符串。
[string2 hasSuffix:@"bbb"]匹配以“bbb”结尾的字符串。
[string stringByReplacingCharactersInRange:rang withString:@"大产"];将搜索出来的字符串替换成指定字符串。
[string stringByReplacingOccurrencesOfString :@" " withString:@"*"]; 将所有为“ ”的字符串全部替换为“*”
NSInteger integerNumber = 11;
NSString * string = [NSString stringWithFormat:@"%d",integerNumber];将NSInteger转换成NSString。
NSInteger integer = [string intValue]; 将NSString转化成NSInteger.
转载于:https://www.cnblogs.com/yanliang/archive/2013/03/10/2952951.html
Objective-C 语法相关推荐
- 【IOS 开发】Objective - C 语法 之 流程控制
1. if 条件语句 if 表达式 : 表达式是一个 整型 或者 布尔型, 0 或者 FALSE 为 FALSE, 大于 0 为 TRUE; 代码示例 : /********************* ...
- 【iOS 开发】Objective - C 语法 之 类型转换
作者 : 万境绝尘 (octopus_truth@163.com) 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/3913507 ...
- objective c 语法
与c/c++不一样的地方 1) .h 和 .m: .m是实现文件: #import导入头文件: @class类声明. 2) @property getter/setter申明: @synthesis ...
- 《黑马程序员》 block的使用(Objective - c语法)
------- <a href="http://www.itheima.com" target="blank">android培训</a> ...
- 《黑马程序员》 category分类的使用(Objective - c语法)
------- <a href="http://www.itheima.com" target="blank">android培训</a> ...
- Pentaho BI server 中 CCC table Component 的使用小技巧
我使用的版本 Pentaho BI Server 5.3.0.0.213 CDE/CDF/CDA/CCC 15.04.16 stable Q: 如何设置表格中各种提示文字的语言(默认为英语)? CDE ...
- iPhone入门教程 (视频)
iPhone入门教程第一课(part 1):开发前的准备及帐号的注册 http://player.youku.com/player.php/sid/XMzA2NjMxMDgw/v.swf iPhone ...
- Objective C的那点小语法
2019独角兽企业重金招聘Python工程师标准>>> 占坑 1,多继承 (新到一个公司,老同事们都使唤你干活,你什么活都干,过了一段时间) 你发现你既可以做android,你也可以 ...
- iOS完全自学手册——[三]Objective-C语言速成,利用Objective-C创建自己的对象...
1.前言 上一篇已经介绍了App Delegate.View Controller的基本概念,除此之外,分别利用storyboard和纯代码创建了第一个Xcode的工程,并对不同方式搭建项目进行了比较 ...
- 【iOS 开发】Objective-C 运算符
博客地址 : http://blog.csdn.net/shulianghan/article/details/41624613 参考文章 : 1.[iOS 开发]Object-C 运算符 2.[iO ...
最新文章
- Android:面试官死亡问答,如何优化一个网络请求?大牛多个网络优化方案帮你解决!
- Alpha(5/10)
- 文巾解题 46. 全排列
- MYSQL专题-由简到繁理解索引结构
- 销售组织与工厂对照表
- POJ - 1087 A Plug for UNIX(最大流)
- Java语言的基础知识11
- java 工厂方法模式_Java中的工厂方法模式
- linux 执行sh 文件是遇到找不到cd '目录'
- 专属海报小程序_剑3泡泡 | 小程序给你一份专属的账号海报!
- linux下shell编程课程设计,Linux下shell编程实例
- 先验、后验、似然、置信的理解
- spring的延迟初始化bean (default-lazy-init 与 lazy-init )
- 你相信逛 B 站也能学编程吗?
- Oracle exp/imp导入不同的表空间
- 零基础搭建微信小程序商城系统
- 计算机的ie丢失,告诉你win7内的IE给卸载了怎么找回
- 新概念英语第三册 阅读
- Cisco Packet Tracer 命令大全 【思科交换机模拟器命令大全】
- 小宝精灵-智能语音遥控伴侣(套装版)测评-遥控器的语音时代
热门文章
- python实现胶囊网络_胶囊网络 -- Capsule Networks
- java js highcharts_Highcharts.js -纯javasctipt图表库初体验
- QPushButton hover配置
- (保守群组测试 非保守群组测试 二次重复测试 自适应二次重复测试)四种群体测试的C++代码
- b tree和b+tree_B TREE实施
- 面向对象(匿名内部类重写多个方法调用)
- php数组的下标、extract函数
- android webdav客户端,WebDAV精灵(WebDAV客户端)
- 【剑指offer】_09二叉搜索树的后序遍历序列
- C++ Variadic Templates(可变参数模板)