IOS_OC_基础语法

1.YES与NO

Object-c 提供了 BOOL 类型, 但这个BOOL 类型和 C++里的并不一样: 在C++里一切非 0 值的东西都 为 true,而为 0 值的为 false。但是 Object-c 里 1 为 true 并被宏定义为 YES=1,0 为 false 并被宏定义为 NO=0。

+ (BOOL)isEquals:(int)x with:(int)y
{
    return x - y;
}
if ([Provider isEquals:10 with:1021]) {// == YES //error
        NSLog(@" !!!!!!");
 } else {
        NSLog(@" ===== ");
 }

2.类CLass

在OC的一个类中,不允许重复定义一个函数,区分函数是否重复根据方法名,与接收参数无关。与java不同

pubic void getInfo(Animal a);
public void getInfo(Person p);
//同一个方法getInfo:
- (void)getInfo:(Animal)a;
- (void)getInfo:(Person)p;

3.常见的集合

void arrayTest()
{
    NSArray *array = [NSArray arrayWithObjects:@"one", @"two", @"three", nil];
    NSLog(@"len = %lu", [array count]);
    for (NSObject *obj in array) {
        NSLog(@"== %@", obj);
    }
    for (int i=0; i<[array count]; i++) {
        NSLog(@"%@", [array objectAtIndex:i]);
    }
    //写进文件,atomically是否先将文件保存至临时文件中,待保存成功之后,再与原始文件替换,是一种安全机制。
    [array writeToFile:@"/Users/zf/Desktop/1.txt" atomically:YES];
    //读取文件
    NSArray *arr = [NSArray arrayWithContentsOfFile:@"/Users/zf/Desktop/1.txt"];
    NSLog(@"len3 = %lu", [arr count]);

}
void mutableArrayTest()
{
    NSMutableArray *array = [NSMutableArray arrayWithCapacity:3];
    [array addObject:@"one"];
    [array addObject:@"two"];
    [array addObject:@"three"];
    [array addObject:@"two1"];

    NSLog(@"len = %lu", [array count]);
    [array removeObjectAtIndex:3];
    NSLog(@"len = %lu", [array count]);

    NSEnumerator *e = [array objectEnumerator];
    NSString *x;
    while (x = [e nextObject]) {
        NSLog(@"x == %@", x);
    }
    NSEnumerator *e1 = [array reverseObjectEnumerator];
}
void dictTest()
{
    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"value1", @"key1", @"value2", @"key2", nil];
    NSLog(@"%@", [dict objectForKey:@"key2"]);

    NSMutableDictionary *d = [NSMutableDictionary dictionaryWithCapacity:3];

    [d setObject:@"wwwwww" forKey:@"key1"];
    [d removeObjectForKey:@"key1"];
    NSLog(@"%lu, key1=%@", [d count], [d objectForKey:@"key1"]);
}

NSArray:有序集合,元素在一个整块的内存中并按序排列;

NSSet:无序集合,散列存储。

读developer.apple关于NSSet的解释:You can use sets as an alternative to arrays when the order of elements isn’t important and performance in testing whether an object is contained in the set is a consideration—while arrays are ordered, testing for membership is slower
than with sets.

搜索一个元素,NSSet的效率会比NSArray高。为什么呢?原理比较简单:NSSet中元素的存储和访问都是一个hash的过程。比如你要存储元素A,一个hash算法直接就能直接找到A应该存储的位置;同样,当你要访问A时,一个hash过程就能找到A存储的位置。而对于NSArray,若想知道A到底在不在数组中,则需要一个一个元素比较,显然效率不高。

4.NSString

void stringTest()
{
    NSString *str = [NSString stringWithFormat:@"aa,bb,cc,"];
    NSArray *array = [str componentsSeparatedByString:@","];
    NSLog(@"len = %lu", [array count]);

    NSLog(@"%@", [array componentsJoinedByString:@"-"]);
}

IOS_OC_基础语法,布布扣,bubuko.com

时间: 2024-11-06 15:47:17

IOS_OC_基础语法的相关文章

Java基础语法

Java的基础语法中包含字符集.标识符和关键字.变量和常量.语句.注释.运算符和表达式这些基本要素. 一.关键字 编程语言都有一些保留的单词,用于定义该语言,这些单词对于编译器有特殊含义,不能作为标识符使用: Java中的true.false.null这三个保留字,不能作为标识符使用,对于编译器有特殊含义: main是一个用于描述Java程序开始方法的特殊名称,它不是一个关键字: abstract 抽象 boolean 逻辑运算: 布尔 break 打破: 断开 byte 字节: case 例,

关于JS脚本语言的基础语法

JS脚本语言的基础语法:输出语法  alert("警告!");  confirm("确定吗?");   prompt("请输入密码");为弱类型语言: 开始时要嵌入JS代码:<script type="text/javascript"></script>: 关于写程序是需注意的基本语法:1.所有的字符全都是英文半角的:2.大部分情况下每条语句结束后要加分号:3.每一块代码结束后加换行:4.程序前呼后应:

前端学PHP之正则表达式基础语法

前面的话 正则表达式是用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作.在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本模式的程序性描述.正则表达式有三个作用:1.匹配,也常常用于从字符串中析取信息:2.用新文本代替匹配文本:3.将一个字符串拆分为一组更小的信息块.本文将详细介绍PHP中的正则表达式基础语法 [注意]关于javascript的正则表达式的详细信息移步至此 历史 在PHP中有两套正则表达式函数库,两者功

java 基础语法

第一周接触java基础语法,上课听得头痛,还是半懂不懂,放学后讲的啥子都忘了. 这是老师给的周末作业: 1.输入长与宽计算长方形面积与周长.(用精度类型计算)2.输入一个学生三科成绩,计算平均分.3.输入int型市场价格,购买价格,计算差额,差额显示为单精度浮点型.4.42页第二,计算房贷那道题.5.输入一个学生成绩,学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示.6.题目:输入三个整数x,y,z,请把这三个数由小到大输出.程序分析:我们想办法把最小的数放到x

jQuery安装和基础语法

1.安装 从 jquery.com 下载 jQuery 库 <script src="jquery-1.10.2.min.js"></script> 从 CDN 中载入 jQuery <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> 许多用户在访问其他站点时,已经从百度.又拍云.新浪.谷歌或微软加载过 jQuery.所有结

javascript基础语法——词法结构

× 目录 [1]java [2]定义 [3]大小写[4]保留字[5]注释[6]空白[7]分号 前面的话 javascript是一门简单的语言,也是一门复杂的语言.说它简单,是因为学会使用它只需片刻功夫:而说它复杂,是因为要真正掌握它则需要数年时间.实际上,前端工程师很大程度上就是指javascript工程师.前端入门容易精通难,说的是前端,更指的是javascript.本文是javascript基础语法的第一篇——词法结构 与java关系 关于javascript有这样一个说法,java和jav

【MOOC笔记】JSP基础语法

JSP 全名:Java Server Pages.java服务器端页面. 本质上是一个简化的Servlet设计,实现了在java中使用HTML标签. JSP是一种动态网站开发标准,与Servlet一样,在服务器端执行. 常用动态网站开发技术: JSP:JAVA平台,安全性高,适合开发大型.企业级WEB应用程序. ASP.NET:基于可视化组件开发,安全性.跨平台性差,最好用微软配套系统. PHP:适合中小型企业WEB应用开发,黄金开发组合:Linux+Apache+MySQL+PHP JSP基础

less以及SCSS基础语法

less 1.注释: //这种注释不能够编译到CSS 文件中 /*这种注释 能够编译到CSS 文件中*/ 2.less 的基础语法 (1).声明变量: @变量名 : 变量值 使用变量: @变量名 >>>变量使用的基本原则: 多次频繁出现的值,后期需要统一修改的值,牵扯到数值运算的值,推荐使用变量 >>>less 中的变量类型 ①数值类: 不带单位的 123, 带单位的 1px ②字符串类型: 不带引号的 red #FF0000 带引号的"hahhaha&quo

java学习总结--2.基础语法

2.java基础语法  java基础语法和c语言有很多相同之处,因为java'作为后起之秀,借鉴了很多C.C++的语法 1.关键字goto和const不能在java中使用,是为了方便C和C++转换为java代码,如果转换的C和C++包含这两个单词会报编译错误   三个保留字false true null 2.标示符 1.标示符不能为关键字和保留字 2.只能包含字母数字下划线和美元符号$ 3.不能以数字开头 4,.区别大小写,没有规定长度 约定俗成的规则 首字母小写 变量名第一个单词首字母小写后面