学习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(数据类型与表达式)的更多相关文章

  1. iOS开发笔记系列-基础2(类)

    面向对象编程总是离不开类和对象的,Objective-C也不例外,不过Objective-C中的类还有一些自己的独特点. 类的声明和定义 在iOS开发中,类的声明与定义通常都是分开的,类得声明通常存放 ...

  2. iOS开发笔记系列-基础4(变量与数据类型)

    对象的初始化 对象的初始化方法一般都如下: -(id)init { self=[super init]; if(self){ ... } return self; } 这个方法首先会调用父类的初始化方 ...

  3. iOS开发笔记系列-基础3(多态、动态类型和动态绑定)

    多态:相同的名称,不同的类 使不同的类共享相同方法名称的能力成为多态.它让你可以开发一组类,这组类中的每一个类都能响应相同的方法名.每个类的定义都封装了响应特定方法所需要的代码,这使得它独立于其他的类 ...

  4. iOS开发笔记系列-基础7(C语言特性)

    Objective-C是C语言的扩展,因此,也具备很多C语言的基本特性,这里只罗列部分. 块(Blocks) 块是对C语言的一种扩展,它并未作为标准ANSI C所定义的部分,而是Apple添加到语言中 ...

  5. iOS开发笔记系列-基础6(预处理程序)

    预处理程序提供了一些工具,使用这些工具更易于开发.阅读.修改程序,也易于将程序移植到不同的系统中.又称为宏. #define #define语句的基本用途之一就是给富豪名称指定程序常量.比如: #de ...

  6. iOS开发笔记系列-基础5(分类和协议)

    分类 在Objective-C中,除了通过新建子类的方式来向类添加新方法外,还可以通过分类的方式.分类提供了一种简单的方式,将类的定义模块化到相关方法的组或分类中,它还提供了扩展现有类定义的简便方式, ...

  7. IOS科研IOS开发笔记学习基础知识

    这篇文章是我的IOS学习笔记,他们是知识的基础,在这里,根据记录的查询后的条款. 1,UIScrollView能完毕滚动的功能. 示比例如以下: UIScrollView *tableScrollVi ...

  8. iOS开发技巧系列---详解KVC(我告诉你KVC的一切)

    KVC(Key-value coding)键值编码,单看这个名字可能不太好理解.其实翻译一下就很简单了,就是指iOS的开发中,可以允许开发者通过Key名直接访问对象的属性,或者给对象的属性赋值.而不需 ...

  9. 【Swift】iOS开发笔记(二)

    前言 这个系列主要是一些开发中遇到的坑记录分享,有助于初学者跨过这些坑,攒够 7 条发一篇. 声明  欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯 ...

随机推荐

  1. 使用EventLog类写Windows事件日志

    在程序中经常需要将指定的信息(包括异常信息和正常处理信息)写到日志中.在C#3.0中可以使用EventLog类将各种信息直接写入Windows日志.EventLog类在System.Diagnosti ...

  2. WINCE6.0+ILI9806E休眠唤醒显示异常问题

    我们的系统WINCE6.0,它支持睡眠和唤醒,目的是想在不使用的时候让设备进入睡眠状态,降低功耗,我们遇到的问题就是设备正常启动后正常显示,但睡眠然后唤醒后要么显示白屏要么是条纹状白屏,如下图: 图1 ...

  3. git同步远端的分支

    如果用命令行,运行 git fetch,可以将远程分支信息获取到本地, 再运行 git checkout -b local-branchname origin/remote_branchname  就 ...

  4. Android开发:如何实现TCP和UDP传输

    TCP和UDP在网络传输中非常重要,在Android开发中同样重要. 首先来看一下什么是TCP和UDP. 什么是TCP? TCP:Transmission Control Protocol 传输控制协 ...

  5. 自动脚本工具新版 v2.0

    自动脚本工具 下载 下载工具后,解压,直接双击 "execute.bat" 文件后(前提已配置好 jdk 1.7 的环境),会生成文件夹 "output",该文 ...

  6. [2015更新]用Word2007写CSDN博客

    搞了半天终于可以用word2007发布CSDN博客了,特分享出来,以方便其他用户. 所示的界面.     图1 office按钮 所示的管理账号,然后点击"新建"也可以进入图3所示 ...

  7. Leetcode OJ : Restore IP Addresses backtrack暴搜 C++ solution

    class Solution { public: vector<string> ret; string src; int len; unordered_set<string> ...

  8. javascript活动对象的理解——伪单例模式

    在自己研究javascript各种设计模式的过程中,偶然写出的一段代码让自己理解的更深刻了,之所以称之为伪单例模式,是因为这段代码造成的结果很想单例模式,但是实际上是活动对象捣乱所造成的误会. 代码很 ...

  9. ADB Server Didn’t ACK ,failed to Start Daemon 解决方法

    解决方法如下: 1.adb nodaemon server 查看不能执行的原因,输出: cannot bind ‘tcp:5037’ 2.定位到了是端口的问题!是5037端口被占用了! 3.netst ...

  10. HDU-2262 Where is the canteen 概率DP,高斯消元

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2262 题意:LL在一个迷宫里面转,每次走向周围能走的点的概率都是一样的,现在LL要随机的走到cante ...