iOS开发笔记系列-基础1(数据类型与表达式)
学习iOS开发快两年了,去年完成MagViewer之后就因为公司的其他业务繁重,除了维护这个应用之外,只是断断续续地自己做一些实验开发,没有再发布新的应用,这里想整理一下学习过程中的笔记,以便加深印象及以后查阅,计划将这个系列分为基础和实践,基础侧重理论只是和自己的理解,实践则结合MagViewer来解决一些实际问题。
Objective-C的数据类型
Objective-C是苹果为iOS开发专门推出的一种程序设计语言,它是C语言的扩展,虽然后来又推出了swift,现在大多数应用还是用Objective-C开发,并且目前两种语言都能完整地开发一款应用。
这里先介绍Objective-C中的基本数据类型。
int类型
整数常量由一个或者多个数字的序列组成。序列前的负号表示该值是一个负数,数字中间不允许插入空格或者逗号。一个int类型书卷占用32位或者64位,具体取决于实际编译运行环境。整型常量一般是十进制的,如果其是以0开头如0112,则表示是八进制的,如果是以0x开头如0xFFE0,则表示其是十六进制的。
float类型
声明为float类型的变量可以存储包含小数位的值。要显示浮点值,可用NSLog转换字符%f或者%g,浮点常亮也可用科学计数法表示,值1.7e4就相当于1.7*10000。double类型与float类型非常相似,只是double类型的变量可存储的范围大概是float变量的两倍。
char类型
char类型可存储单个字符,将字符放入一对单引号中就能得到字符常量,这和C语言风格的字符串容易混淆,字符串是双引号中的任意个数字符。而且,字符串前面加上"@"字符,就会转换成NSString字符串对象。在NSLog调用中可以使用格式字符%c来显示char变量的值。
限定词:long, long long, short, unsigned, signed
如果直接把限定词long放在int声明前,那么所声明的整型变量在某些计算机上具有扩展的值域,long long int则具有更大的值域,甚至可以用long double,相应的,short int用来存储相当小的整数,这主要是从节约内存空间的角度考虑。unsigned限定词则表示声明的变量只用于保存正值,这也扩展了整型变量的范围。
id类型
id类型是Objective-C语言中特有的一种数据类型,它可以存储任何类型得对象,某种意义上说,它是一般对象类型,它是Objective-C中多态和动态绑定的基础。
Objective-C中的算术表达式
Objective-C中的算术表达式与其他程序设计语言一样,这里只记录一下其中的隐式转换,当表达式中的运算数都是整型的时候(这一情况还适用于short,unsigned,long整型),该运算就将在整数运算的规则下进行,因此,有乘法运算产生的任何小数部分都被删除。当表达式中至少有一个值是浮点变量或常量的时候,这一运算就作为浮点运算来处理。
类型转换运算符可以强制转换运算数类型,它比其他所有算术运算符(除开一元减号和一元加号运算符)的优先级都要高。如(int)20.1。
iOS开发笔记系列-基础1(数据类型与表达式)的更多相关文章
- iOS开发笔记系列-基础2(类)
面向对象编程总是离不开类和对象的,Objective-C也不例外,不过Objective-C中的类还有一些自己的独特点. 类的声明和定义 在iOS开发中,类的声明与定义通常都是分开的,类得声明通常存放 ...
- iOS开发笔记系列-基础4(变量与数据类型)
对象的初始化 对象的初始化方法一般都如下: -(id)init { self=[super init]; if(self){ ... } return self; } 这个方法首先会调用父类的初始化方 ...
- iOS开发笔记系列-基础3(多态、动态类型和动态绑定)
多态:相同的名称,不同的类 使不同的类共享相同方法名称的能力成为多态.它让你可以开发一组类,这组类中的每一个类都能响应相同的方法名.每个类的定义都封装了响应特定方法所需要的代码,这使得它独立于其他的类 ...
- iOS开发笔记系列-基础7(C语言特性)
Objective-C是C语言的扩展,因此,也具备很多C语言的基本特性,这里只罗列部分. 块(Blocks) 块是对C语言的一种扩展,它并未作为标准ANSI C所定义的部分,而是Apple添加到语言中 ...
- iOS开发笔记系列-基础6(预处理程序)
预处理程序提供了一些工具,使用这些工具更易于开发.阅读.修改程序,也易于将程序移植到不同的系统中.又称为宏. #define #define语句的基本用途之一就是给富豪名称指定程序常量.比如: #de ...
- iOS开发笔记系列-基础5(分类和协议)
分类 在Objective-C中,除了通过新建子类的方式来向类添加新方法外,还可以通过分类的方式.分类提供了一种简单的方式,将类的定义模块化到相关方法的组或分类中,它还提供了扩展现有类定义的简便方式, ...
- IOS科研IOS开发笔记学习基础知识
这篇文章是我的IOS学习笔记,他们是知识的基础,在这里,根据记录的查询后的条款. 1,UIScrollView能完毕滚动的功能. 示比例如以下: UIScrollView *tableScrollVi ...
- iOS开发技巧系列---详解KVC(我告诉你KVC的一切)
KVC(Key-value coding)键值编码,单看这个名字可能不太好理解.其实翻译一下就很简单了,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值.而不需 ...
- 【Swift】iOS开发笔记(二)
前言 这个系列主要是一些开发中遇到的坑记录分享,有助于初学者跨过这些坑,攒够 7 条发一篇. 声明 欢迎转载,但请保留文章原始出处:) 博客园:http://www.cnblogs.com 农民伯 ...
随机推荐
- tophat输出结果junction.bed
tophat输出结果junction.bed BED format BED format provides a flexible way to define the data lines ...
- poj 3274 Gold Balanced Lineup(哈希 )
题目:http://poj.org/problem?id=3274 #include <iostream> #include<cstdio> #include<cstri ...
- ImageMagick的使用
关于ImageMagick ImageMagick (TM) 是一个免费的创建.编辑.合成图片的软件.它可以读取.转换.写入多种格式的图片.图片切割.颜色替换.各种效果的应用,图片的旋转.组合,文本, ...
- OpenGL学习之路(五)
1 引子 不知不觉我们已经进入到读书笔记(五)了,我们先对前四次读书笔记做一个总结.前四次读书笔记主要是学习了如何使用OpenGL来绘制几何图形(包括二维几何体和三维几何体),并学习了平移.旋转.缩放 ...
- 在win2008中配置ServU
因为08的防火墙要求比较高.很多端口都关闭,所以要设置防火墙. 首先设置入站规则 1.新建一条规则,规则类型选择“端口”,然后TCP,设置为20-21,60010-60020,然后允许链接,在配置文件 ...
- vim配色方案
想更换vim配色方案,需要修改两个文件: 第一个修改是在 /user/share/vim/vim73/colors 添加xxx.vim文件://路径里面有些不是vim73,是vim70或其他 第二个修 ...
- HDU 5335 Walk Out
题意:在一个只有0和1的矩阵里,从左上角走到右下角, 每次可以向四个方向走,每个路径都是一个二进制数,求所有路径中最小的二进制数. 解法:先bfs求从起点能走到离终点最近的0,那么从这个点起只向下或向 ...
- POJ 3377 Ferry Lanes
虽然它出现在dp专场里···但是我第一反应是一道最短路题···不过幸好它出现在dp专场里···因为我不怎么会dijstra什么的··· 题意:一条河上有N+1对码头,每个相邻码头之间需要一定时间到达, ...
- Balanced Numbers(数位+状压)
题意:求给定区间,一个数的数位上每个奇数出现偶数次,每个偶数出现奇数次,这样数的个数 分析:先考虑状态,但总是想不全,所以要把状态压缩一下,用三进制,0 该数不放 1 放了奇数次 2放了偶数次 dp ...
- [JDBC-1] JDBC Base Template
以Statement建立的标准模板: static void template() throws Exception { Connection conn = null; Statement st = ...