漫步IOS--基础语法篇
文章平均质量分 69
三千世界--只挥一刃
这个作者很懒,什么都没留下…
展开
-
漫步IOS--函数帧、内存分配函数、内存管理函数
说到内存,有必要总结一下内存的区块划分。因为确实和Java中的有些偏差。在电脑的内存中分为一下五个模块。œ栈区:这个区由系统分配,存储的是局部变量,特点是先进后出。通常一个电脑的栈区容量大概是7-8M左右的容量。œ堆区:内存中相对来说比较大的一块区域,而我们手动申请的内存的所在就是这里。œ静态区:这里存储的时全局变量,像用static声明的变量,或者写在大括号外面的变量。此区的变量的特原创 2015-01-06 15:04:41 · 715 阅读 · 0 评论 -
漫步IOS--日期类及其函数
OC里的日期函数是NSDate和Java差不多。常用函数1 初始化NSDate *da = [NSDate dateWithTimeIntervalSinceNow:0];根据系统时间初始化得到一个NSDate。这里需要提一句。在IOS系统内部,对于NSDate的存储都是按照零时区的时间存储的。怎么说呢?假设现在的系统的时间是晚上八点,我们是处在东五区的,那么现在我们输出这个da实例的时间原创 2015-01-19 20:57:24 · 639 阅读 · 0 评论 -
漫步IOS--引用计数函数和深浅拷贝
引用计数函数1 alloc 开辟内存空间,让被开辟的空间的引用计数变为1,这是从0到1得过程什么时候看到alloc什么时候开辟空间。类方法是没办法去调用实例方法的,也没办法改变实例变量。凡是一次alloc配套一次release或者autorelease。2 retain引用计数+1,他的作用是将对象的指针指向一个内存,而并不需要去开辟新的空间。凡是一次retai原创 2015-01-20 16:54:43 · 1219 阅读 · 0 评论 -
协议(delegate)和代理模式
所谓的协议(delegate)就和Java中的接口差不多,在里面只能进行一些方法的声明。OC也是单继承多实现的,而"实现",就是通过delegate“实现”的。相比于Java,OC中的协议的好处是,协议可以指定其所定的方法是否为必须实现。还有一个Java的特性在OC中也可以使用,就是类似泛型。定义参数的时候就可以通过id _boyFriend;在OC中,id表示任何类型,具原创 2015-01-20 21:19:13 · 1030 阅读 · 0 评论 -
漫步IOS--指针细节3:指针定义、TypeDef别名声明、结构体内存存储
1 指针定义感觉对于指针的学习有点儿倒序学习了,主要是这一块真的需要来回的加深理解。首先,指针的定义是按如下的格式定义的。int t = 10;int *p_0 = &t;这里需要提一下,在定义的时候*只是起到标识作用,告诉编译器这个p_0变量是一个指针变量。过了定义这一行,用这个变量就得写p_0了,如果再写*p_0就得按照之前的写的*是取地址所指向的变量,&是去变量所在的地址。原创 2015-01-01 14:26:50 · 1095 阅读 · 0 评论 -
漫步IOS--数组函数
和字符串类一样,函数数组也分为可变和不可变两种,不可变数组包含了所有可变数组的方法。还有一个就是不可变数组初始化之后数组的内容就不可变了,除非将该指针指向另一块内存区域。不可变数组:NSArray1 初始化NSArray *arr1 = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];和不可变字符串的初始化一样,如果在数组初始原创 2015-01-17 11:50:31 · 510 阅读 · 0 评论 -
漫步IOS--字符串类NSString和NSMutable常用函数
1初始化原创 2015-01-16 20:36:59 · 568 阅读 · 0 评论 -
漫步IOS--结构体指针、结构体数组指针,结构体Char数组声明
1 结构体指针结构体指针也和正常的指针是一样的使用,只是多了一种调用方法point m={1,0},n={4,0};point *p_m ,*p_n;point是一个结构体,调用的时候先声明一个对应类型的指针变量,然后再像正常的指针调用即可。只是在调用的时候可以多了一种新的调用方式如下p_m->x另外值得一提的是:原先的那种方法在作为结构体调用的时候会出现错误,即下面的代码是会报错的原创 2015-01-02 16:23:34 · 1398 阅读 · 0 评论 -
漫步IOS--指定比较器
对于基本数据类型的排序可以根据数据的值进行比较,但是如果是对于类进行排序比较呢?该按照哪一个属性的值进行比较排序呢?而很不巧的是,在进行排序的时候很多时候排序的并不是简单地基本数据类型。这个时候,OC和Java一样,提供了一个比较器的功能。但是OC与Java在实现上有些不一样。OC是数组可以调用一个方法进行排序,在这个方法中可以指定排序的规则,就是我们写好的compared方法,然后sel原创 2015-01-17 19:30:07 · 737 阅读 · 0 评论 -
漫步IOS--OC的面向对象的封装和继承
OC是一门面向对象的语言,所以和Java一样,面向对象所具有的三大特性他也是必定具备的,多态暂且不提,先解释一下封装和继承。1 封装个人理解,所谓的封装性,见名知意,即保护自身的方法和属性不被不该的人看见和使用。也可以理解为控制对于我们的类的操作权限。实现思路:实现思路就是配合访问权限标记将不想让外人看见的部分(变量和方法)进行隐藏,然后在合适的地方提供一个我们写好的方法对其进行访原创 2015-01-10 19:42:17 · 512 阅读 · 0 评论 -
漫步IOS--字典类(NSDictionary)
字典类:NSSdictionaryOC里面的字典类也叫Key-Value,就和Java里面的map差不多,只是没有Java里面那么多种类的Map,OC里面只有两种,可变字典和不可变字典,还是与字符串和数组一样,可变字典包含了所有不可变字典的方法,也可以通过mutableCopy实现数据从不可变到可变数组的拷贝。1 初始化NSDictionary *dic = [[NSDictionar原创 2015-01-17 15:14:06 · 1439 阅读 · 0 评论 -
漫步IOS--OC编程初始
1 数据类型的变化原创 2015-01-09 10:45:24 · 530 阅读 · 0 评论 -
漫步IOS--指针细节1
1 变量赋值机理:以将int i= j;为例。先根据j的内存地址,取出j的值,然后再根据i的地址找到i的内存地址块,将j的值写进去。这就是内存的存取操作。只是在编程看来我们只是对变量进行的操作,其实地址相关的操作只是被隐藏了。2 指针和指针变量的区别:C语言中又一种特殊的变量,这种变量所存储的值就是内存中的地址,这种变量叫指针变量,他所存储的地址叫指针。必须一提的是,指针变量也原创 2014-12-23 10:56:24 · 442 阅读 · 0 评论 -
漫步IOS--格式化输出字符、运算符,字符串数组赋值。
1 格式化输出在控制浮点型数据输出的时候,可以通过在%f之间添加4.2这种格式控制从而达到格式化输出的效果。2 运算符取余运算符的做哟两遍必须都是整数,所以,浮点型基本数据是没办法进行取余运算的,这也是很符合逻辑的嘛。值得好好注意的是两个整数相除,最后的结果还是个整数,想要得到小数部分进行强制转换即可。%04d,用0补齐成四位数,用其他的补齐会报错,至于原因,有原创 2014-12-23 21:23:16 · 808 阅读 · 0 评论 -
漫步IOS--数组、sizeof和函数形参
首先声明,该系列博客记录的重点是C、OBject-C(以后简称OC)相对于Java的不同,还有一些我在编码练习过程中遇到的问题还有解决方法,而并不是一份流水式的完全的学习笔记。还有一些内容是C和OC中特有的东西等。 一、数组在C中数组的定义只有一种语法: 类型 名称[大小] 例如 : int Arr[10];没有第二种定义方法,对于他的赋值是和Java一样的。二、原创 2014-12-23 09:41:52 · 1611 阅读 · 0 评论 -
漫步IOS--前言
决定要专心学好IOS,所以专门开通了一个新浪博客,记录一下学习的每一步。开通这个博客的目的很简单,保持我一贯的作风,将开源分享进行到底。将我的所学还有所有的资源分享给所有需要的人,我的观念是人与人之间的差距产生的原因从来不是每个人的资料所有量的差别,而是对资料使用率的差别。开通这个博客的另一个目的也是作为一种监督自己的手段,强制自己每天进行学习回顾和总结,吃点儿苦不算什么,怕的是不原创 2014-12-23 09:39:04 · 457 阅读 · 0 评论 -
漫步IOS--部分排序一:冒泡排序、选择排序和快速排序
1 冒泡排序冒泡排序的思路:从序列的一头开始,每次比较相邻的两个数,将大的往后移.当走到序列结尾的时候,最后一个即是最大的;然后再从头开始比较,只是这次比较到倒数第二个就好,因为第一个已经确定是最大了。如此往复,直到没有需要比较的元素为止。个人表述有限,可参考维基百科介绍。参考代码:void sortUp(int arr[],int size){ for (int i = 0;原创 2014-12-26 14:39:15 · 2155 阅读 · 0 评论 -
漫步IOS--二维数组定义原则、strlen()初探、
1二维数组定义原则二维数组的定义:可以不给定行数,但必须给定列数。编译器会根据给出的列数和初始化元素的个数确定有几行。2 strlen()初探strlen()是求一个字符串的长度。在解决问题的时候发现了一个挺好玩的事情。是这样的,对于下面的代码,你觉得他会输出啥呢?int main(int argc, const char * argv[]){ char a[][原创 2014-12-29 15:25:13 · 1915 阅读 · 2 评论 -
漫步IOS--指针细节2:*与&、指针初始化问题、指针数组和数组指针
1 * 与&之前的指针的总结漏了很重要的一句话,是关于* 和& 的定义。我觉得对于初学者来说,把这两句作为卡尺去衡量* 和& 是很有效果的,就像学Java时说的万物皆对象一样。*:取指针所指向的对象的内容。&:取地址运算符。再举个简单地例子。void swap(int *p1,int *p2){ int a ,b; p1 = &a;}在上面的代码中,调用swa原创 2014-12-29 11:30:37 · 821 阅读 · 4 评论