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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/400839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

flag

mark, to remember

MSP430F5529 DriverLib 库函数学习笔记(五)定时器A

目录硬知识定时器A 16位定时器原理(1)时钟源选择和分频器(2)Timer_A工作模式(3)捕获/比较模块(4)Timer_A中断(重要)定时器A API (机翻)定时器A配置和控制的函…

vim 常用快捷键(整理版)

最常用: x 删除后面的字符 X 删除前一个字符 删除3个字符就是3x dd:删除一行 D 删除到行尾 J:删除换行符,使下一行并上来。 nJ:连接后面的n行 u:撤销上一次操作 U:撤销当前行的所有修改 ctrlr:对撤消的撤消 I 在行首插入 a 在光标后插入 A…

快速排序——算法系列

快速排序: 思想:主要是利用了分而治之的思想,将一个大的排序问题简化成一个一个小的问题。 代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using Sys…

C++对象间通信组件,让C++对象“无障碍交流”

🚀 优质资源分享 🚀 学习路线指引(点击解锁)知识定位人群定位🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一…

《Servlet学习笔记》Servlet开发细节-线程安全

Servlet开发细节-线程安全当多个客户端并发访问同一个Servlet时,web服务器会为每一个客户端的访问请求创建一个线程,并在这个线程上调用Servlet的service方法,因此service方法内如果访问了通过一个资源的话,就有可能引发线程安全问…

MSP430F5529 DriverLib 库函数学习笔记(六)定时器A产生PWM波

目录1.通过Timer_A_outputPWM配置产生PWM波初始化函数计算修改占空比的函数整体程序效果2.单定时器产生多路PWM信号初始化函数实验结果3.对称PWM信号的产生初始化程序实验结果平台:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP‑EX…

host 和TNS设置

host关系到前台ebs应用的登陆问题 路径 host文件路径C:\Windows\System32\drivers\etc\hosttns关系到 plsql developer的应用问题 查询路径方法 未登录条件下打开plsql developer 菜单栏 support info中 第一个可以找到文件所在路径 D:\DevSuiteHome\Network\Admin\tnsnames.…

Key_EXTI_Config:神舟IV

GPIO 输入上拉,按键按下,pin接地,触发中断 Key_Config 1 void Key_Config(void)2 {3 GPIO_InitTypeDef GPIO_InitStructure;4 5 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);6 7 /* Configure KEY1 Button PC4*/8 RCC_APB2…

Java 将HTML转为XML

🚀 优质资源分享 🚀 学习路线指引(点击解锁)知识定位人群定位🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一…

MSP430F5529 DriverLib 库函数学习笔记(七)定时器B

目录硬知识Timer_B特点及结构Timer_B寄存器定时器B API处理计时器配置和控制的函数参数处理计时器输出的函数参数管理定时器B中断的函数参数平台:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) 硬知识 16位定时器B(…

数组指针——指向数组的指针(通过指针控制数组)

//一维数组int arr1[5] { 1,2,3,4,5 };int(*arrP)[5] &arr1; //定义数组指针 必须用&arr1, arr1是数组首元素的地址&#xff1b;&arr1是代表数组地址虽然地址都一样但是当加1的时候就有区别了&#xff0c;说明还是代表的不同东西for (int i 0; i < sizeof…

诡异的楼梯

Problem DescriptionHogwarts正式开学以后,Harry发现在Hogwarts里,某些楼梯并不是静止不动的&#xff0c;相反,他们每隔一分钟就变动一次方向. 比如下面的例子里,一开始楼梯在竖直方向,一分钟以后它移动到了水平方向,再过一分钟它又回到了竖直方向.Harry发现对他来说很难找到能…

ruoyi接口权限校验

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

MSP430F5529 DriverLib 库函数学习笔记(八)模数转换模块(ADC12)

目录硬知识模数转换概述MSP430单片机ADC12模块介绍MSP430单片机ADC12模块操作ADC12的转换模式采样和转换转换存储器使用片内集成温度传感器ADC12模块寄存器ADC_12A API (机翻)处理初始化和转换的函数参数处理中断的函数参数处理ADC_12A的辅助功能的函数参数上机实战&#xff08…

js Cookie

javascript操作Cookie CreateTime--2017年6月2日17:15:36Author:Marydon 参考链接&#xff1a;http://www.jb51.net/article/64330.htm &#xff08;一&#xff09;介绍   JavaScript是运行在客户端的脚本&#xff0c;因此一般是不能够设置Session的&#xff0c;因为Session是…

JFreeChart API文档

JFreeChart API文档 关键字: 报表Version 1.0.0-rc2 JFreeChart目前是最好的java图形解决方案&#xff0c;基本能够解决目前的图形方面的需求&#xff0c;主要包括如下几个方面&#xff1a; JFreeChart类&#xff1a; void setAntiAlias(boolean flag)字体模糊边界 void setBac…

有意思的鼠标指针交互探究

&#x1f680; 优质资源分享 &#x1f680; 学习路线指引&#xff08;点击解锁&#xff09;知识定位人群定位&#x1f9e1; Python实战微信订餐小程序 &#x1f9e1;进阶级本课程是python flask微信小程序的完美结合&#xff0c;从项目搭建到腾讯云部署上线&#xff0c;打造一…

php 递归创建目录、递归删除非空目录、迭代创建目录

递归创建目录 方法一 1 function mk_dir($path){2 if(is_dir($path)){  //参数本身是一个目录3 return true;4 }5 6 if(is_dir(dirname($path))){ //参数的父目录是一个目录&#xff0c;则创建目录7 return mkdir($path);8 }9 10 mk_di…

python基本数据类型——str

一、字符串的创建 test str() / "" test str("licheng") / "licheng" 无参数&#xff0c;创建空字符串一个参数&#xff0c;创建普通字符串两个参数&#xff0c;int&#xff08;字节&#xff0c;编码&#xff09;二、字符串的常用方法 #capita…