- 博客(65)
- 收藏
- 关注
原创 【转】老张喝茶 教你同步异步 阻塞与非阻塞
老张爱喝茶,废话不说,煮开水。出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。1 老张把水壶放到火上,立等水开。(同步阻塞)老张觉得自己有点傻2 老张把水壶放到火上,去客厅看电视,时不时去厨房看看水开没有。(同步非阻塞)老张还是觉得自己有点傻,于是变高端了,买了把会响笛的那种水壶。水开之后,能大声发出嘀~~~~的噪音。3 老张...
2012-10-11 09:49:43
195
原创 【一步一步学IOS5 】 如何在导航界面隐藏TabBar
前面的例子中,我们开发了一个tab bar(选项卡栏)应用程序。 我们将导航控制器嵌入在tab bar控制器内。因此,当用户轻拍任一菜单项时,导航控制器切换到详细视图。 但是tab bar 在详细视图时,仍然占用了一些屏幕空间,我们需要隐藏tab bar,释放更多的屏幕空间。 1. UIViewController 类 的hidesBottomBarWhenPushed...
2012-09-21 14:56:52
240
原创 【一步一步学IOS5 】 在表视图中添加搜索栏
下面,我们来演示一下如何在Tab Bar项目基础上添加一个搜索栏。通过搜索栏,App可以让用户指定搜索条件后,搜索菜单列表。 1.理解搜索栏显示控制器(Search Display Controller) 你可以使用搜索显示控制器(如 UISearchDisplayController 类)管理App中的搜索功能。搜索显示控制器管理搜索栏(search bar)和表视图(table...
2012-09-21 14:44:18
280
原创 【一步一步学IOS5 】 Storyboard 创建Tab Bar控制器和Web视图
下面,我们来继续完善Storyboard 项目 1)如何创建Tab B ar 控制键2)如何使用UIWebView创建About页面 1.Tab Bar控制器 和UIWebView Tab Bar 控制器在每一个tab中显示一个独特的视图,通常,一个Tab Bar 至少包含2个tab s ,根据需要最多可以添加5个tabs UIWebView 是加载web...
2012-09-18 16:42:53
309
原创 【一步一步学IOS5 】 Storyboard 在视图控制器间传递数据
在前面例子中,我们介绍了Storyboards 是 Xcode 中设计用户界面的友好功能。 首先,回顾一下我们已经完成的工作。 - 将一个正常的视图控制器嵌入到导航控制器中- 创建了一个表视图,并填充了菜单列表- 使用联线从一个视图控制器切换到另一个视图控制器 我们目前还没有实现详细视图,该视图目前显示 一个静态的标签。我们将继续完成这个项目。完善这个应用程序。...
2012-09-17 17:02:56
206
原创 【一步一步学IOS5 】 使用Storyboards创建导航控制器和表视图
导航控制器(Navigation Controller)是什么? 和表视图(Table View)一样,导航控制器是另一个UI控件,在iOS App中经常看到。它为分层内容提供了向下导航的界面。我们看看内置的Photos App、YouTube 和通讯录(Contacts)。这些App都使用了导航控制器显示分层的内容。通常表视图和导航控制器在多个App中同时存在,当然,这并不意味着你必须同...
2012-09-17 15:55:59
250
原创 【一步一步学IOS5 】 从UITableView中删除一行和Model-View-Controller
如何从UITableView中删除一行? 在创建Simple Table 应用程序时,经常有人提到上述问题, 在开始编码之前,我先介绍下 Model-View-Controller 模式,这个模式是在用户界面编程中经常引用的设计模式之一。 1.理解 Model-View-Controller 不管学习什么语言,成为一个更好的开发人员所需要了解的概念是Separati...
2012-09-17 10:51:15
180
原创 【一步一步学IOS5 】 在iOS App 中添加启动画面
你可以认为你需要为启动画面编写代码,然而Apple 让你可以非常简单地在Xcode中完成。不需要编写代码,你仅需要在Xcode中进行一些配置。 1.什么是启动画面(Splash Screen)? 启动画面是你在启动App的时候看到的第一个界面,通常,启动画面是覆盖整个屏幕的一张图片,在主屏幕装在完后隐藏。 启动画面的主要目的是让用户知道你的App正在装载,并且对用户介绍你的...
2012-09-14 18:02:26
201
原创 【一步一步学IOS5 】 应用Property List 强化你的Simple Table 应用程序
前面我们已经创建了一个简单的表视图应用程序,显示菜谱列表。分析一下代码,你会发现所有的菜谱都应编码在源代码中。之前,我们只考虑让事情变得简单,并着重演示如何创建一个 UITableView 应用程序。然而,将所有元素比硬编码在代码中并不是推荐的方法。 在真实的App开发中,我们常常将这些静态元素存放在外部(如菜谱列表)文件或数据库或其它地方。在IOS编程中,有一种类型的文件,成为 Pr...
2012-09-14 13:58:08
193
原创 【一步一步学IOS5 】 处理UITableView中的行选择
下面,我们将尝试对先前的demo做如下变化: (1)当用户点击一行时,显示一个提醒消息 (2)当用户选择了一行时,显示一个选中的标志 1.理解UITableViewDelegate 在我们创建Simple Table View 应用程序时,我们在SimpleTableController.h 中定义了2个委托(UITableViewDelegate 和 UITabl...
2012-09-14 10:23:44
152
原创 【一步一步学IOS5 】 定制UITableView表视图单元格
之前,我们已经创建了一个简单的表视图App,用来显示菜单列表和图片。下面,我们继续改进该App,是其效果更佳。 1)实现不同的行显示不同的图片2) 定制表视图单元格 1.显示不同的缩略图: 在修改代码之前,我们先回顾一下在数据行上显示缩略图的代码: - (UITableViewCell *)tableView:(UITableView *)ta...
2012-09-12 17:25:04
222
原创 【一步一步学IOS5 】 创建一个简单的表视图(Table View)应用程序
首先,在iPhone App中的表视图是什么? 表视图(Table View) 是IOS Apps 中一个通用的UI元素。很多应用程序在一定程度上,都有使用表视图来显示数据列表。最好的例子是内置的iPhone应用程序。你的联系人显示在表视图中。另外一个例子是Mail应用程序,它使用表视图显示你的邮箱和邮件。不仅可以用来显示文本数据,表视图也可以呈现图像数据。内置的Video和YouTu...
2012-09-10 14:28:46
287
原创 【一步一步学IOS5 】 IOS 编程基础:Hello World应用程序如何工作的?
Interface Builder、头文件和实现文件 首先,这些.xib、.h和.m文件是什么? .xib - 对于.xib后缀的文件,是Interface Builder文件,存放应用程序的用户界面(UI),当你点击.xib 文件时,Xcode 自动切换到Interface Builder 界面,你可以通过拖拉编辑应用程序的用户界面。 .h和.m - .h后缀的文件是头文...
2012-09-07 16:43:44
187
原创 【一步一步学IOS5 】 Hello World!创建你的第一个iPhone App
上个月入手MBP,感觉超好。也对IOS开发产生了兴趣。 索性利用空闲时间学习下IOS开发。并通过日志将学习笔记记录下来,供大家一起分享。 IOS开发环境:Xcode 4.4.1、IOS 5.1 Library Hello World 效果图: coding start! 1.启动我们的Xcode软件,在弹出的欢迎对话框中选择Create...
2012-09-07 15:32:02
290
原创 排序 - 归并排序(一)
归并排序的概念:归并排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序的序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体的有序序列。首先,我们要注意以上的几个关键字,若干子序列,有序的我们要保证我们将序列拆分成若干个子序列,并且各个子序列是有序的。当子序列是有序的时,我们再采用两两合并的方法,并使得合并的序列也是有序的。...
2012-07-13 15:41:49
224
原创 排序 - 堆排序
堆排序的概念:首先,我们先要理解堆的定义,堆定义:n个关键字序列K1,K2,...,Kn称为(Heap),当且仅当该序列满足如下性质(简称:堆性质):(1)k(i)<=k(2i) 且 k(i)<=k(2i+i) (1<=i<=n/2),当然,这是最小根堆,(2)k(i)>=k(2i) 且 k(i)>=k(2i+i) (1<=i&...
2012-07-11 16:31:33
179
原创 排序 - 希尔排序
希尔排序的概念:希尔排序(Shell Sort)是插入排序的一种,是针对直接插入排序的算法的改进。该方法又称缩小增量排序。那么什么是缩小增量排序呢?首先,我们再来理解下直接插入排序,我们在使用它时,是循环它的第二个数值和它后面的属于与它前面的数值进行比较。如果小于前面的数值,则将当前数值保存为一临时变量,将将大于当前值的数值往后挪一位,至少前面没有数值比当前...
2012-07-10 16:32:28
166
原创 排序 - 直接插入排序
前面,我们提到了,冒泡排序非标准版,标准版,优化版,和选择排序,下面我们来说下直接插入排序直接插入排序的作法是:每次从无序表中取出第一个元素,把它插入到有序表的合适位置,是有序表仍然有序。第一趟比较前两个数,然后把第二个数按大小插入到有序表中;第二趟把第三个数据与前两个数从后往前扫描,把第三个数按大小插入到有序表中;依次进行下去,进行了(n-1)趟扫描以后就...
2012-07-09 16:01:03
171
原创 排序 - 简单选择排序
前面我们提到过冒泡排序的非标准版,用的是自上而下,每一个元素都与其它元素进行比较,如果前面大于后面的,则交换它们的值,那此时就会出现一个性能上的问题,因为在第二层循环体内,如果发现前面的元素大于后面的元素,就会交换它们的值。而我们知道,二层循环体执行结束后的意义就是讲最小值放到前面,至于后面数值的顺序,它的排列时无意义的。我们在后面的循环中才会将其排...
2012-07-06 18:14:23
151
原创 排序 - 冒泡排序(标准优化版)
前面我们提到冒泡排序的标准版,下面我们来对冒泡排序进行优化。为什么要进行优化呢?首先,我们要知道,冒泡排序用的是相连两个之间的比较。而最外层的循环次数是数组的长度-1,那么,有没有不用全部循环结束,就能排好序呢?这种情况是有的,比如,我们需要排序的序列是{2,1,3,4,5,6,7,8}也就是说,除了第一和第二元素之外,别的都是正常的排序...
2012-07-06 17:35:58
211
原创 排序 - 冒泡排序(标准版)
上文我们提到了冒泡排序的非标准版,主要区别在于,不是两两相连的元素进行比较 下面给出标准版的 void BubbleSort(SqList *L){ int i,j; for(i=1;i<L->Length;i++){ for(j=L->Length-1;j>=i;j--) ...
2012-07-06 17:20:40
277
原创 排序 - 冒泡排序(非标准版)
冒泡排序的基本概念:依次比较相邻的两个数,将小的放在前面,大数放在后面。即在第一趟:首先比较第1个和第二个数,将小数放前,大数放后,然后比较第2个和第3个数,将小数放前,大数放后,如此继续,直到比较最后两个数,将小数放前,大数放后。 至此第一趟结束,将最大的放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不在小于第2个数...
2012-07-06 16:31:47
161
原创 指针-指向函数的指针
1.指针函数的定义: 如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配的一段存储空间,这段存储空间的其实地址(又称入口地址)称之为这个函数的指针。我们可以定义一个指向函数的指针变量 如 int (*p) (int,int);用来存放着某一函数的起始位置,这就意味着此指针变量指向该函数 。下面我们给出一个用函数指针变量调用函数的例子例:用函...
2012-07-04 17:16:20
267
原创 指针-字符指针作函数参数
如果我们想把一个字符串从一个函数"传递"到另一个函数,可以用地址传递的方式(即用字符数组名作参数,也可以用字符指针变量为参数)。在被调用的函数中可以改变字符串的内容,在主函数中可以引用改变后的字符串。下面我们用例子来说明:例: 用函数调用实现字符串的复制(1)用字符数组名作为函数参数 #include <stdio.h>int mai...
2012-07-04 14:42:49
608
原创 指针-引用字符串
在 C 语言中,由于没有字符串这个变量类型, 所以字符串是存放在字符串数组中的。如果我们想引入一个字符串,有以下两种方式。1.用字符数组存放一个字符串,可以通过数组名和下标引用字符串中的一个字符,也可以通过数组名和格式声明"%s"输出该字符串。 #include <stdio.h>int main(){ char string[] = ...
2012-07-04 11:13:10
355
原创 指针-二维数组的辨析
首先,我们来先定义一个二维数组int a[3][4]= {{1,3,5,7},{9,11,13,15},{17,19,21,23}};a是数组名,a是一个3行4列的数组。a数组包含3行元素,即a[0],a[1],a[2]。而每一个行元素又是一个一维数组,它包含4个元素(即4个列元素),例如,a[0] 所代表的一维数组又包含4个元素。a[0][0],a[0][1],...
2012-07-03 18:13:13
223
原创 指针-用数组名作函数参数
这一部分,我们直接通过例子来解释例:将数组a中n个整数按相反顺序存放。 #include <stdio.h>int main(){ void inv(int x[],int n); int i,a[10] = {3,7,9,11,0,6,7,5,4,2}; printf("The original array:\n");...
2012-07-03 16:53:28
215
原创 指针-数组的基本概念与辨析
一、数组元素的指针的定义:所谓数组元素的指针就是数组元素的地址。我们可以这样理解,先前我们说到,指针就是变量的地址。那么数组是可以包含多个元素的,每一个变量在内存中都会占用空间,就用有相应的地址。所以,数组元素的指针,就是记录了数组中各个元素的地址。当然,不可能一次性记录完,而是通过数据在内存中的存储规律,通过给定义一个数组元素初始的地址,根据计...
2012-07-03 14:42:16
389
原创 指针-函数参数易错点分析
例:输入a和b两个整数,按照先大后小的顺序输出a和b。 #include <stdio.h>int main(){ void swap(int *p1,int *p2); int a,b; int * pointer_1,* pointer_2; printf("please enter a and b:"); sca...
2012-06-29 09:58:40
257
原创 指针的基本概念
1.指针和指针变量的区别:指针是一种用于存储"另外一个变量的地址" 是一个地址指针变量是 用于存放地址的变量 是一个变量举例说明: #include <stdio.h>int main(){ int *pointer_1,a; a=100; pointer_1 = &a; printf...
2012-06-28 16:55:34
153
原创 数据结构-基本概念和术语
一、基本概念1、数据(Data): 是对信息的一种符号表示。在计算机科学中是指所有能输入到计算机中并被计算机处理的符号的总称。2、数据元素(Data Element): 是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成。数据项是数据的不可分割的最小单位。 3、数据对象(Data Object): 是...
2012-06-26 14:03:43
220
原创 数值计算和非数值计算的区别
数值算法求解连续数学的问题,比如解方程,求积分等等,主要的课程有数学分析,数值方法非数值算法求解离散数学的问题,比如图,树,组合之类的,主要的课程有离散数学,数据结构现在,非数值方面的应用比较多一些...
2012-06-26 11:18:18
3862
原创 网页播放器封装版,支持wmv,mp4,flv
用javasript 重新 封装了 wmv,mp4,flv三个播放器 , 支持 rtsp协议。 支持根据影片类型来自动选择合适的 播放器 。
2012-06-11 15:27:50
281
原创 [转]用JavaScript js 控制 Media Player 流媒体
转自:http://blog.youkuaiyun.com/IBM_hoojo/article/details/5658181 在Web页中嵌入Media Player的方法比较简单,只要用HTML中的可以了,如下所示。 CLASSID="CLSID:22D6f312-B0F6-11D0-94AB-0080C74C7E95" CODEBASE="http://activex....
2012-06-04 17:11:26
356
原创 [转]用JavaScript js 控制 Media Player 播放器
转自:http://blog.youkuaiyun.com/IBM_hoojo/article/details/5754834 目前没有自定义进度条拖拽功能,准备参照着写一个。预计一周内搞定如果你的电脑上面找不到播放的音影文件,可以用一张图片代替; <html> <head> <meta http-equiv="Con...
2012-06-04 17:06:12
258
原创 【Linux】fg、bg让你的进程在前后台之间切换
转自 http://witmax.cn/linux-fg-bg.html Linux下的fg和bg命令是进程的前后台调度命令,即将指定号码(非进程号)的命令进程放到前台或后台运行。比如一个需要长时间运行的命令,我们就希望把它放入后台,这样就不会阻塞当前的操作;而一些服务型的命令进程我们则希望能把它们长期运行于后台。 进程前后台操作用到以下命令或按键:Ctrl+C终止并...
2012-05-30 17:18:44
160
原创 Java正则表达式学习(六)
12. PatternSyntaxException 类的方法PatternSynException 是未检查异常,指示正则表达式模式中的语法错误。PatternSyntaxException类提供了下面的一些方法,用于确定在什么地方发生了错误:public String getDescription() :获得错误描述。public int getIndex() :...
2012-05-29 21:18:02
133
原创 Java正则表达式学习(五)
11. Matcher 类的方法下面列出的方法是按照功能来分组的。索引方法索引方法(index methods)提供了一些正好在输入字符串中发现匹配的索引值:public int start() : 范围之前匹配的开始索引public int start(int group) : 返回之前匹配操作中通过给定组所捕获序列的开始索引public int ...
2012-05-29 19:05:20
116
原创 Java正则表达式学习(四)
10. Pattern 类的方法10.1 使用标志构造模式Pattern类定义了备用的compile方法,用于接受影响模式匹配方式的标志集。标志参数是一个位掩码,可以用下面的公共静态字段中任意一个:Pattern.CANON_EQ启动规范等价。在指定此标志后,当且仅当在其完整的规范分解匹配时,两个字符被视为匹配。例如,表达式a\u030A 在指定此标识后,将匹配...
2012-05-29 17:14:10
180
原创 Java正则表达式学习(三)
8.捕获组捕获组(capturing group)是将多个字符作为单独的单元来对待的一种方式。构建它们可以通过把字符放在一对圆括号中而成为一组。例如,正则表达式(dog)建了单个的组,包括字符"d" "o" 和 "g"。匹配捕获组输入的字符串部分将会存放于内存中,稍后通过反向引用再次调用。8.1 编号方式在Pattern的API描述中,获取组通过从左至右计算开始的圆括号进行...
2012-05-29 15:04:58
158
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人