吧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 判断是否是这个类的实例,和父类没有关系。

id类型可以指向任何类的实例,不需要强转。
example:
TestCourse *course = [[TestCourse alloc] init]; 
id t = course;
NSString:字符串比较方法
isEqualTostring
[string1 compare:string2]; 
NSArray *array = [nstring componentsSeparatedByString:@","]; 按照指定的字符分割字符串。
使用标准的c创建字符串
char *Cstring = "字符串";  
NSString * string = [[NSString alloc] initWithUTF8String:Cstring]; 

[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 语法相关推荐

  1. 【IOS 开发】Objective - C 语法 之 流程控制

    1. if 条件语句 if 表达式 : 表达式是一个 整型 或者 布尔型, 0 或者 FALSE 为 FALSE, 大于 0 为 TRUE; 代码示例 : /********************* ...

  2. 【iOS 开发】Objective - C 语法 之 类型转换

    作者 : 万境绝尘 (octopus_truth@163.com) 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/3913507 ...

  3. objective c 语法

    与c/c++不一样的地方 1) .h 和 .m: .m是实现文件: #import导入头文件: @class类声明. 2) @property getter/setter申明: @synthesis ...

  4. 《黑马程序员》 block的使用(Objective - c语法)

    ------- <a href="http://www.itheima.com" target="blank">android培训</a> ...

  5. 《黑马程序员》 category分类的使用(Objective - c语法)

    ------- <a href="http://www.itheima.com" target="blank">android培训</a> ...

  6. Pentaho BI server 中 CCC table Component 的使用小技巧

    我使用的版本 Pentaho BI Server 5.3.0.0.213 CDE/CDF/CDA/CCC 15.04.16 stable Q: 如何设置表格中各种提示文字的语言(默认为英语)? CDE ...

  7. iPhone入门教程 (视频)

    iPhone入门教程第一课(part 1):开发前的准备及帐号的注册 http://player.youku.com/player.php/sid/XMzA2NjMxMDgw/v.swf iPhone ...

  8. Objective C的那点小语法

    2019独角兽企业重金招聘Python工程师标准>>> 占坑 1,多继承 (新到一个公司,老同事们都使唤你干活,你什么活都干,过了一段时间) 你发现你既可以做android,你也可以 ...

  9. iOS完全自学手册——[三]Objective-C语言速成,利用Objective-C创建自己的对象...

    1.前言 上一篇已经介绍了App Delegate.View Controller的基本概念,除此之外,分别利用storyboard和纯代码创建了第一个Xcode的工程,并对不同方式搭建项目进行了比较 ...

  10. 【iOS 开发】Objective-C 运算符

    博客地址 : http://blog.csdn.net/shulianghan/article/details/41624613 参考文章 : 1.[iOS 开发]Object-C 运算符 2.[iO ...

最新文章

  1. Android:面试官死亡问答,如何优化一个网络请求?大牛多个网络优化方案帮你解决!
  2. Alpha(5/10)
  3. 文巾解题 46. 全排列
  4. MYSQL专题-由简到繁理解索引结构
  5. 销售组织与工厂对照表
  6. POJ - 1087 A Plug for UNIX(最大流)
  7. Java语言的基础知识11
  8. java 工厂方法模式_Java中的工厂方法模式
  9. linux 执行sh 文件是遇到找不到cd '目录'
  10. 专属海报小程序_剑3泡泡 | 小程序给你一份专属的账号海报!
  11. linux下shell编程课程设计,Linux下shell编程实例
  12. 先验、后验、似然、置信的理解
  13. spring的延迟初始化bean (default-lazy-init 与 lazy-init )
  14. 你相信逛 B 站也能学编程吗?
  15. Oracle exp/imp导入不同的表空间
  16. 零基础搭建微信小程序商城系统
  17. 计算机的ie丢失,告诉你win7内的IE给卸载了怎么找回
  18. 新概念英语第三册 阅读
  19. Cisco Packet Tracer 命令大全 【思科交换机模拟器命令大全】
  20. 小宝精灵-智能语音遥控伴侣(套装版)测评-遥控器的语音时代

热门文章

  1. python实现胶囊网络_胶囊网络 -- Capsule Networks
  2. java js highcharts_Highcharts.js -纯javasctipt图表库初体验
  3. QPushButton hover配置
  4. (保守群组测试 非保守群组测试 二次重复测试 自适应二次重复测试)四种群体测试的C++代码
  5. b tree和b+tree_B TREE实施
  6. 面向对象(匿名内部类重写多个方法调用)
  7. php数组的下标、extract函数
  8. android webdav客户端,WebDAV精灵(WebDAV客户端)
  9. 【剑指offer】_09二叉搜索树的后序遍历序列
  10. C++ Variadic Templates(可变参数模板)