学习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. 【HDOJ】3007 Buried memory

    1. 题目描述有n个点,求能覆盖这n个点的半径最小的圆的圆心及半径. 2. 基本思路算法模板http://soft.cs.tsinghua.edu.cn/blog/?q=node/1066定义Di表示 ...

  2. Return Negative

    Return Negative In this simple assignment you are given a number and have to make it negative. But m ...

  3. annotatedClasses和component-scan冲突吗

    annotatedClasses:配置在sessionFactory下面表示的是,哪些实体需要映射,代码如下: <bean id="sessionFactory" class ...

  4. UVa 10213 (欧拉公式+Java大数) How Many Pieces of Land ?

    题意: 一块圆形土地,在圆周上选n个点,然后两两连线,问把这块土地分成多少块? 分析: 首先紫书上的公式是错的,不过根据书上提供的思路很容易稍加修改得到正确答案! 然后推公式吧,这里用到平面图的欧拉公 ...

  5. vijos1049送给圣诞夜的礼品

    这题犯了两个sb错误,写下来,为以后做个警告 一.mul过程中将k作为了循环变量 二.看错了题…… 题目中说是数到k行,而我却以为数k遍…… 做矩阵乘法,只要记住一句话:置换一定可以写成矩阵的形式! ...

  6. I.MX6 Linux 自动获取AR1020 event input节点

    /*********************************************************************** * I.MX6 Linux 自动获取AR1020 ev ...

  7. 一位Erlang程序员的自白

    Erlang不能错过的盛宴 (快步进入Erlang的世界) 作者:成立涛 (litaocheng@gmail.com) 作为程序员,我们曾经闻听很多“业界动态”,“技术革新”,曾经接触很多“高手箴言” ...

  8. 使用Spring Profile和Mybatis进行多个数据源(H2和Mysql)的切换

    最近在做WebMagic的后台,遇到一个问题:后台用到了数据库,本来理想情况下是用Mysql,但是为了做到开箱即用,也整合了一个嵌入式 数据库H2.这里面就有个问题了,如何用一套代码,提供对Mysql ...

  9. [selenium webdriver Java]常用api

    1. 获取元素文本 WebElement类的getText()方法返回元素的innerText属性.所以元素里如果有子节点一样也会被返回出来.如下所示 public class GetText { @ ...

  10. e2e 自动化集成测试 架构 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step (三) SqlServer数据库的访问

    上一篇文章“e2e 自动化集成测试 架构 京东 商品搜索 实例 WebStorm Node.js Mocha WebDriverIO Selenium Step by step 二 图片验证码的识别” ...