- 博客(73)
- 资源 (17)
- 收藏
- 关注
原创 UIKit和Core Graphics绘图——字符串,线条,矩形,渐变
概述CoreGraphics也称为Quartz 2D 是UIKit下的主要绘图系统,频繁的用于绘制自定义视图。Core Graphics是高度集成于UIView和其他UIKit部分的。Core Graphics数据结构和函数可以通过前缀CG来识别。视图可以通过子视图、图层或实现drawRect:方法来表现内容,如果说实现了drawRect:方法,那么最好就不要混用其他方法了,如图层
2013-08-15 22:58:36
8765
转载 栈与堆的区别
堆和栈的区别 一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵
2013-08-13 22:48:40
2155
原创 再谈内存管理与ARC运行机制——内存管理
内存管理内存在Objective-C开发中是一种相对稀缺的资源,拿Iphone4为例,它的内存只有512mb,所以妥善的处理好所创造,所使用的每个对象与变量都将成为一个问题。在ARC出现以前,同大部分基于C的编程语言一样,程序员需要考虑如何高效的管理内存。像在Java或是一些脚本语言中就不需要考虑内存管理的问题。生命周期Obj-c对象的创建,存活和销毁整个过程为
2013-08-12 23:39:35
1847
原创 利用Objective-C分类对“私有成员,方法”的静态动态实现
分类分类(category)是OBJ-C语法中非常方便的一部分,可以在运行时向某个现有类添加新的方法。包括Cocoa框架中的任何类,我们都可以对其进行扩展,这是从Smalltalk(oc的鼻祖)继承过来的,跟C#中的扩展方法比较像。不谈历史,先来看下用分类进行私有成员的表现。#import "ViewController.h"@interface ViewControlle
2013-08-09 01:01:50
6076
8
原创 解决Keyboard遮盖输入的几种办法
一般来说,键盘遮挡主要有这么几种情况,一个是遮住UITextView,还有就是遮住UITextField,一般来说,比较推荐在UIScrollView或者UITableView里加入textfield的控件。但是有时也许难免。。在UITextView中这个在苹果官方文档中的项目中给出了做法,首先是注册观察者监听UIKeyboardWillShow和WillHide事件-
2013-08-04 23:35:16
3425
原创 数据持久化方法——Core Data
概述Core Data是一种用来解决应用中数据持久化问题的技术。作为一个Cocoa框架,首次在Mac OS X 10.4 Tiger与iOS 3.0系统中出现。它允许按照实体-属性-值模型组织数据,并以XML,二进制文件或SQLite数据文件的格式将其串行化。Core Data允许用户使用代表实体和实体间关系的高层对象来操作数据。它也可以管理串行化的数据,提供对象生存期管理与objec
2013-08-01 22:22:47
2032
原创 数据结构——队列
概述队列:只允许在一段进行插入删除操作,而在另一端进行删除操作的线性表。队列是一种先进先出(FIFO)的线性表,允许插入的一端为队尾,允许插入的一端为队头。循环队列头尾相接的顺序存储结构为循环队列。为防止溢出,通常保留一个空闲单元在队满时。队满的条件:(队尾 + 1) %队列长度 = 队头通用的队长值为:(队尾 - 队头 + 队列
2013-07-30 21:27:42
2499
原创 算法——素数判定方法
原始版素数表最初刚接触算法的时候,使用了原始的方法来输出素数表:void originalPrime(){ long p, d, input; int isPrime; printf("input a number:"); scanf("%li", &input); for (p = 2; p <= input;
2013-07-27 01:41:15
1366
转载 C语言中 对变量内存关系的探讨
变量名不占空间变量:用来标识(identify)一块内存区域,这块区域的值一般是可以更改的,这就是它“变”的由来,但是我们可以通过使用如const等一些修饰符号来限定这一内存区域的操作特性(characteristic),即变量的操作特性。用const修饰的使变量不能更改的就和常量一样的变量叫做常变量。变量名:是一个标识符(identifier),用来指代一块内存区域,即变量,使用变量
2013-07-26 20:59:28
2056
原创 IOS中的本地通知和后台任务
概述苹果公司为了确保IOS设备能在任何时候都能快速响应,保证用户体验,对后台运行的应用程序进行了限制。在IOS4以后,对第三方应用程序开放了后台处理,但在开放后台处理面很谨慎,只对一组用户经常遇到的任务开放。IOS支持的后台处理主要有四种类型:1.挂起暂停执行代码,保留当前状态。用户返回应用程序时看起来一直在运行,实际上为了不让其占系统资源,任务都停止了。
2013-07-25 11:20:38
5070
转载 C语言中变量的作用域
C语言中变量的作用域C语言中所有变量都有自己的作用域,申明变量的类型不同,其作用域也不同。C语言中的变量,按照作用域的范围可分为两种, 即局部变量和全局变量。一、局部变量局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。例如:int f1(int a) /*函数f1*/ { int b
2013-07-23 20:34:26
3607
原创 数据结构——栈
定义限定仅在表尾进行插入和删除操作的线性表。(先入后出)顺序结构C定义#define MAXSIZE 20#pragma mark 顺序栈typedef int SElemType;typedef struct { SElemType data[MAXSIZE]; int top;}SqStack;压栈操作int Pu
2013-07-23 00:15:28
1647
1
原创 IOS多媒体之视频播放与录音的简易实现
涉及到的框架MediaPlayer.frameworkAVFoundation.frameworkCoreAudio.frameworkdemo的预览图简介提供了指定的区域播放视频以及全屏播放视频的功能, 录音及播放录音的功能。主要用到了MPMovieController,AVAudioRecorder,AVAudioPlayer类。.h
2013-07-21 00:34:59
2462
原创 数据读写——NSFileHandle
概述NSFileHandle类是一种面向对象的封装对一个文件的描述。您可以使用文件句柄对象来访问文件,套接字,管道和设备相关的数据。对于文件,您可以在文件中读,写。对于套接字,管道和设备,你可以使用一个文件句柄对象来监视设备和过程数据的异步。(The NSFileHandle class is an object-oriented wrapper for a file desc
2013-07-20 00:16:05
2518
原创 UITableView的常用方法与示例
实例方法dequeueReusableCellWithIdentifier:初始化一个指定重用标识符的UITableCell对象两个协议UITableViewDataSourcetableView:numberOfRowsInSection: (required)行数在指定分区中tableView:cellForRowAtIndexPath: (requir
2013-07-18 23:57:24
1813
原创 数据结构——静态链表
定义用游标实现法描述的链表叫做静态链表C定义:#define MAX_SIZE 1000typedef struct{ ElemType data; int cur;}Component,StaticLinkList[MAX_SIZE];插入和删除操作一些相关方法://初始化int initList(StaticLinkList
2013-07-12 22:15:27
1446
原创 UIPickerView的属性及委托方法
属性numberOfComponents (readonly) 选择框的行数dataSource (readonly) 数据源delegate 委托(BOOL)showsSelectionIndicator 是否显示选择指示器 这个选择器是指滑动时PickerView上的选择方块:如图所示 阿扎尔上方浮动的透明长方形就是指示器委托方法UI
2013-07-10 00:04:42
5861
原创 数据结构——单链表
定义n个节点链结成一个链表,即为线性表的链式存储结构,因为此链表中的每个结点中只包含一个指针域,所以叫单链表。头指针与头结点头指针:a.指向第一个结点的指针,若有头结点,则指向头结点b.头指针带有标识作用,常以头指针冠以链表的名字c.无论链表是否为空,头指针均不为空。是链表的必要元素头结点:a.为了操作统一和方便而设立,放在第一个元素
2013-07-07 00:09:45
2162
1
原创 IOS中的各种尺寸
大小/像素文件名称显示位置57 * 57Icon.pngAPPStore/Home114 * 114Icon@2x.png 29 * 29Icon-Small.pngSetting/Spotlight58 * 58
2013-07-05 16:05:37
2570
原创 算法与数据结构(一)
一 时间复杂度大O阶的推导方法: 1. 用1取代加法常数 2. 保留最高阶项 3.去除最高阶项的系数常用的时间复杂度所耗费的时间从小到大: O(1) 二 线性表顺序存储结构定义: 指用一段地址连续的存储单元一次存储线性表的数据元素#define MAXSIZE 20typedef int ElemTyp
2013-07-04 23:11:19
1471
原创 ios的自动转屏
在IOS6以前,设置转屏需要用到方法- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)x在6以后,取代它的是- (BOOL)shouldAutorotate- (NSUInteger)supportedInterfaceOrientations在论坛上看到个问题,如何用按钮控
2013-07-03 23:08:23
2219
原创 通告机制Notification
Obj-c的基本通讯原则是对象间的消息传递,这种情况多出现在两个对象之间。但是如果多个对象共同关注一个对象状态的时候呢,当然可以让发生事件的对象向所有关注他的对象发送消息,但是这并不高效。所以有了通告中心,让发生事件的对象向通告中心发布通告,然后由通告中心向注册成为观察器的对象发布通告。若将某个对象注册为观察器,需要制定通告名称、发布通告的对象和接收相应通告的方法的方法名。比如我将self注册
2013-06-30 23:47:23
2027
原创 UIView的生命周期
UIView对象一般都是由alloc和init方法创建的,由UIViewController进行维护和管理。一般需要完成的任务有:创建视图,显示视图,隐藏视图和释放视图。一般视图不会在程序运行时立刻创建并载入,只有当应用需要这个视图的时候才会创建,这种延迟创建视图的方法能够提高内存的使用效率。同样,在需要这个视图之前,系统会检查是不是已经载入过这个视图,如果是,直接返回创建过的view,如果没
2013-06-27 00:20:49
8316
原创 《Objective-C程序设计(第四版)》读书笔记(四)
8.NSNumber (p336)基本数据类型是无法存储在数组之类的集合中,所以在Foundation框架有一个专门处理各种数据类型的类,就是NSNumber,NSNumber其实是一个抽象类,负责封装一些数据对象,提供一些处理方法。当数组存入一些NSNumber对象后,直接打印数组会发现输出的是那些NSNumber对象的值而并不是他们在内存中的地址。这说明了NSNumber类有自
2013-06-27 00:19:11
1753
原创 UITabBar的常用设置
UITabBar十分常用,它能实现多个页面的快速切换,而且看起来简单实用。假设我这有多个已经初始化好的viewController,然后需要将它们加入到TabBarController中,并把其设置为根视图NSArray *views = [[NSArray alloc] initWithObjects:test, time, test1, test2, test3, test4, n
2013-06-25 22:00:46
1782
原创 UIScrollView的分页与缩放
UIScrollView类为显示内容的视图大小大于应用程序窗口提供支持。它使用户能够在该内容中通过轻扫手势进行滚动,通过手捏手势放大和缩小视图中的内容。分页当取景范围里有多个视图时,你不希望拖动后界面停在中间连接位置,就需要分页功能CGRect screenRect = [self.window bounds];CGRect bigRect = screenRect;bigRe
2013-06-23 23:24:43
3682
原创 UIResponder中的“摇一摇”
微信推出了语音聊天之后很快推广开了,出了摇一摇功能之后,又火了一把。我们有个不着调的老师有一次就在上课不停地问同学们这个摇一摇功能的问题,大家都“含蓄”地乐个不停。这个功能主要依托于UIResponder中的运动事件,作为UIView的父类,NSObject的子类,UIResponder主要包含了一些关于响应和运动事件的方法:触摸事件:1.告诉接收者(Responder)当前有一个或多
2013-06-23 00:28:12
1928
原创 drawRect绘图
在Java的Swing开发中,常用Graphics2D来绘图,虽然用代码的方式来绘图会比较繁琐,但是貌似有很多攻城狮都乐在其中。iOS里的Core Graphics框架作为一个绘图框架,也提供了很多手动绘图的常用方法。UIView的drawRect就像是Java中的paintComponent重绘方法:1.开始要获取一个指向当前上下文的指针(CGContextRef)- (vo
2013-06-22 07:55:32
2661
原创 MapKit框架的初步使用
MapKit框架是用来显示世界地图的框架,其中大部分的功能由MKMapView类提供,它的实例负责显示地图、跟踪触摸屏幕的动作并显示标注等等。常用的对象有:MKMapView对象,负责显示地图和已经记录位置的标签。MKAnnotationView实例若干,用户触摸屏幕的话他们会以图标注解的形式出现在地图上。在加载地图数据的时候,你还可以显示一个加载数据的动画,一个UIActivityI
2013-06-20 13:15:03
1644
原创 CoreLocation 中的 CLLocationManager
CoreLocation框架所包含的类,IOS应用可以通过它们获得设备的当前地理位置。而且不论用哪种类型的IOS需要编写的Core Location代码都是一样的。主要应用的两个类:CLLocationManagerCLLocationManagerDelegate协议1.将框架导入后,导入头文件,遵守该协议。2.然后实例化一个CLLocationManager,主要步骤:
2013-06-18 00:30:15
2156
原创 《Objective-C程序设计(第四版)》读书笔记(三)
6. 块 (Blocks) (p268) 作为C语言的扩展,块其实是由苹果公司添加到语言中的。这个看起来像函数的东西,定义在函数或者方法的内部,并且能够访问在函数或者方法范围内块之外的任何变量。其实,这个东西在一些方面有点像Java里的匿名内部类。块的优势在于能够让系统分配给其他处理器或应用的其他线程执行。 使用块有一点注意的是,如果块的内部有一些变量,在定义块
2013-06-17 13:47:46
1389
原创 《Objective-C程序设计(第四版)》读书笔记(二)
4.类的扩展(p175 - ) 作为C语言扩充出来的面向对象编程语言,继承与多态充分的体现在了OBJ-C里面,这些语法跟Java在很多方面有些类似。Java中类的继承,抽象类,接口等都有效的对类进行了扩展。 3中提到了类的实例变量的继承的问题,那么为什么要创建子类呢,作者给出了三点分析:希望继承一个类的函数,也许加入一些新的方法或者实例变量。希望创建一个类的
2013-06-17 13:40:54
1398
原创 《Objective-C程序设计(第四版)》读书笔记(一)
最近读了《Objective-C程序设计(第四版)》,感觉这本书讲的蛮细致,主要内容有四个模块:OBJ-C语法,C语言特性,Foundation框架还有IOS简介。巩固基础和加深理解的话值得推荐一下。1."-"与"+"(p37) 以前一直称"-"为动态方法,也就是调用这个类的实例可以调用,"+"为静态方法,也就是在这个类本身执行的操作方法。这本书的译者把两者翻译成实例方法
2013-06-17 13:36:11
1448
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅