- 博客(57)
- 收藏
- 关注
原创 unix i/o create函数解惑
刚开始学习unix编程,在网上看到有人提问代码如下,问题是,#include #include #include #include #include #define FILE_MODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH)char buf1[] = "abcdefghij";char buf2[] = "ABCDEFGHIJ
2014-10-29 14:33:00 1118
转载 [转载]IOS view变为Image
原文地址:IOS view变为Image作者:ios流星- (UIImage *) imageWithUIView:(UIView*) view{UIGraphicsBeginImageContext(view.bounds.size);CGContextRef ctx = UIGraphicsGetCurrentContext();[view.layer render
2013-06-29 12:39:14 578
转载 Custom UITabBar
关于UITabBar各部分自定义的代码片段一、自定义TabBar选项卡背景默认UITabBarController的TabBar背景是黑色的,如何自定义成背景图片呢?UITabBarController *tabBarController = [[UITabBarController alloc] init];// 获取选项卡控制器视图的所有子视图,保存到一
2013-05-18 20:16:51 674
原创 oc工厂模式方法
java中工厂模式用到了反射方法,感觉oc比java更优美一些了。下面就是oc工厂方法的实现:首先定义三个类分别是Apple,Banana和Pear类继承自Fruit类@interface Fruit : NSObject-(void)show;@end@interface Apple : Fruit @end@interface Banana : Fruit @end
2012-09-09 20:21:32 2197 1
原创 异步下载图片小项目中遇到的问题总结
1.下载的图片大小和UITableViewCell默认的图片大小不匹配的时候,要对图片大小进行调整,方法如下://appImageData是从网上下载的图片的数据,转化为UIImage UIImage *image = [[UIImage alloc]initWithData:self.appImageData]; //判断如果图片的大小和要求的大小不符合的话执行
2012-09-09 19:38:32 497
转载 SDWebImage异步加载网络图片 缓存内存及本地
摘自:http://www.cnblogs.com/lovecode/articles/2246384.htmlSDWebImage托管在github上。https://github.com/rs/SDWebImage这个类库提供一个UIImageView类别以支持加载来自网络的远程图片。具有缓存管理、异步下载、同一个URL下载次数控制和优化等特征。使用示范的代码:UI
2012-09-07 09:32:18 896
转载 UITableView提高性能
在iOS应用中,UITableView应该是使用率最高的视图之一了。iPod、时钟、日历、备忘录、Mail、天气、照片、电话、短信、Safari、App Store、iTunes、Game Center⋯几乎所有自带的应用中都能看到它的身影,可见它的重要性。然而在使用第三方应用时,却经常遇到性能上的问题,普遍表现在滚动时比较卡,特别是table cell中包含图片的情况时。实际上只要针
2012-09-06 20:25:21 385
翻译 iOS json解析之SBJson
JSON是现在比较流行的文档格式,与xml比,JSON很轻巧。ios sdk中没有JSON的解析库,第三方库SBJson是用的比较多的。解析下面的JSON数据{ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S", "G
2012-08-29 16:54:41 636
原创 UIImagePickerController学习
有一个 插入图片按钮,响应函数为:- (IBAction)insertPhoto:(id)sender { UIAlertView *alert = [[UIAlertView alloc]initWithTitle:nil message:@"插入图片" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"系统相册"
2012-08-28 19:16:29 657
转载 设计模式之工厂:
转自:http://www.cnblogs.com/sunnyxx/archive/2012/04/27/2473146.html 程序中可能会出现大量的if-else或者switch-case来选择一系列类中的某个类进行操作,利用反射(Reflection)就可以避免这些重复判断工作。 反射在Java中封装了类来实现,在Objective-C里面要自己来实现,好在不是很难。
2012-08-28 14:15:16 615
原创 ASIHTTPRequest续1
在做项目的时候经常要知道http请求回来的文件的一些信息,这些信息通常在responseHeaders中,它是个NSDictionary类型的。把它的内容打印出来看看http头文件都是什么,要在ASIHTTPRequest返回头儿的代理方法中进行。//先收到头儿,然后收到数据。-(void)request:(ASIHTTPRequest *)request didReceiveRespo
2012-08-28 10:55:19 704
原创 ASIHTTPRequest
使用iOS SDK中的HTTP网络请求API,相当的复杂,调用很繁琐,ASIHTTPRequest就是一个对CFNetwork API进行了封装,并且使用起来非常简单的一套API.安装:1,下载ASIHTTPRequest,加入到工程中2,加入libz.dylib,MobileCoreServices,SYstemConfiguration,CFNetwork框架。实例:发送一
2012-08-28 09:53:16 727 1
转载 SQLite中如何用api操作blob类型的字段
在实际的编程开发当中我们经常要处理一些大容量二进制数据的存储,如图片或者音乐等等。对于这些二进制数据(blob字段)我们不能像处理普通的文本那样简单的插入或者查询,为此SQLite提供了一组函数来处理这种BLOB字段类型。下面的代码演示了如何使用这些API函数。首先我们要建立一个数据库:sqlite3_exec(db, "CREATE TABLE list (fliename varc
2012-08-24 20:23:40 876
原创 指针的指针---一个有序链表的实现
#include #include #include #define BOOL int#define FALSE 0#define TRUE 1typedef struct _Node{ int value; struct _Node *next;}Node;BOOL insert(Node **root,int new_value);void print
2012-08-24 16:14:01 355
转载 glut回调函数学习
void glutDisplayFunc(void (*func)(void));注册当前窗口的显示回调函数参数:func:形为void func()的函数,完成具体的绘制操作这个函数告诉GLUT当窗口内容必须被绘制时,那个函数将被调用.当窗口改变大小或者从被覆盖的状态//*****************************************
2012-08-23 16:13:24 513
转载 iOS-编写简单的翻页效果
在电子书应用中会很常见。这里需要两个要点:翻页动画手势上下轻扫(swipe)的处理先说一下轻扫(swipe)的实现,可以参考编写简单的手势示例:Tap了解手势种类。在viewDidLoad方法中注册了对上、下、左、右四个方向轻松的处理方法- (void)viewDidLoad { UISwipeGestureRecognizer *recognize
2012-08-22 20:50:08 484
转载 UIImage imagenamed 用法好坏
大家为了方便都这样加载图片myImage = [UIImage imageNamed:@"icon.png"];这种方法在一些图片很少,或者图片很小的程序里是ok的。但是,在大量加载图片的程序里,请千万不要这样做。这种方法在application bundle的顶层文件夹寻找供应的名字的图象 。 如果找到图片,装载到iPhone系统缓存图象。那意味图片是(理论上)放
2012-08-22 12:49:37 877
原创 UIView自定义绘图之--各种图形的画法
下面是矩形的各种画法:-(void)drawInContext:(CGContextRef)context{ //线条的颜色 CGContextSetStrokeColorWithColor(context, [UIColor whiteColor].CGColor); //填充图形的颜色 CGContextSetFillColorWithColor(conte
2012-08-20 17:56:49 900
原创 CALayer层和CAAnimation动画
每一个ViewController默认有一个UIView,可以自定义UIView加入到ViewController默认的的视图中。也可以有子视图加入到视图中。每一个UIView视图中又有一个默认的CALayer对象,就是层的概念。当然,也可以定义自己的CALayer,加入到UIView的默认的层中@interface GraphicsView : UIView { CALaye
2012-08-20 15:57:00 1734
原创 UIView自定义绘图2--相应触摸事件
UIView可以响应触摸事件,响应有单个手指触摸,也有多点触摸。判断触摸是几个手指的触摸:-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSArray *a = [[event allTouches]allObjects]; NSLog(@"%d",[a count]);}写一个程序,像你
2012-08-20 14:36:30 670
原创 UIView自定义绘图
每一个UIViewController都有一个默认的UIView,通常我们在xib文件中编辑的就是在默认的UIView上。也可以自定义自己的UIView子类,然后加入到UIViewController中。建立一个UIView子类GraphicsView : UIView。在UIViewController中的loadView方法中加入:-(void)loadView{ Grap
2012-08-20 14:14:12 872
原创 输入输出函数
当学习完c语言的语法以后,要想深入学习,那就好学习c语言的标准函数库了。其中IO函数库是我们最长用到了函数库了。像我们开始学习的时候就有printf()函数等等,这些打印输入函数都属于IO函数库。下面是我学习时认为重要做个笔记:1.错误报告:perror();定义于stdlib头文件,用于在程序中出现错误时把错误信息传递给用户。原型是:void perror(char cons
2012-08-12 17:23:34 472
转载 CFType
Memory ManagementCFGetAllocatorCFGetRetainCountCFMakeCollectableCFReleaseCFRetainDetermining EqualityCFEqualHashingCFHashMiscellaneous FunctionsCFCopy
2012-08-10 13:25:34 777
原创 iOS开发之代理模式
iOS开发最常用到的设计模式恐怕就是代理模式了,刚开始学的时候很迷茫,不知道代理类中的代理方法是怎么被调用的,以为就是系统自己随便调用的,老师讲了代理模式以后还是不明白,问老师发现老师比我还晕。今天看了c++的设计模式,突然明白了,下面分享下我的程序,读懂这个程序应该对代理模式就有所了解了。我的程序是一个销售员帮别人买房子。销售员就是代理,代理别人买房子。代理模式要用到协议,协议就相当
2012-08-10 10:04:16 1587
转载 使用开源代码IOS进行SOcket编程
iphone的标准推荐CFNetwork C库编程.但是编程比较烦躁。在其它OS往往用类来封装的对Socket函数的处理。比如MFC的CAsysncSocket.在iphone也有类似于开源项目.cocoa AsyncSocket库, 官方网站:http://code.google.com/p/cocoaasyncsocket/ 它用来简化CFnetwork的调用.一.在项目引入ASync
2012-08-09 08:51:45 608
原创 URL下载系统编程
NSURL类提供了操作URLs的资源的能力。下面是NSURL系统中的类。NSURLConnection:为了从URL下载内容,应用程序需要提供至少下面的代理对象。connection:didReceiveResponseconnection:didReceiveData:,connection:didiFailWithError:和connectionDidFi
2012-08-09 08:50:48 484
原创 CAAnimation
动画对象可以在一段时间内持续驱动属性值的变化。可以将动画对象加入CALayer实例,一旦加入,层就会开始执行动画指令。动画对象CAAnimation是抽象类,必须使用它的某个具体子类。CAPropertyAnimation是CAAnimation的子类,它通过加入修改层属性的功能来扩充父类。CAPropertyAnimation也是抽象类,它的两个具体子类:CABasicAnimati
2012-08-08 20:13:55 545
原创 CALayer
下面代码是把一个层加到UIView中- (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { // Initialization code boxLayer = [[CALayer alloc]init]; [bo
2012-08-08 19:56:21 547
原创 核心动画编程
什么是核心动画:核心动画是一个oc类的集合,这些类用来做图形渲染,投影和动画。用核心动画,我们就能不通过底层图形API(如opengl)来为我们的应用程序创建动态动画用户接口。核心动画能分为下面几个类别:1,为展示(display)提供内容的层类(layer class);2,动画和时间类3,排版(layout)和限制类层类(layer class)
2012-08-08 17:30:17 377
翻译 UIResponder
UIResponder定义了一个回应和操作事件的对象的接口。有两个基本事件:触摸事件和移动事件(touch events and motion events)TasksManaging the Responder Chain– nextResponder– isFirstResponder– canBecomeFirstResponder– become
2012-08-08 08:24:39 315
原创 iOS开发之文件和路径
每一个App都是一个Island每一个与文件系统交互的应用程序都被限制在app沙箱的路径下。安装应用程序时,ios为每一个程序创建一个home路径和几个重要的文件夹,documents,library和tmp。iOS拒绝应用程序访问自己文件路径外面的任何文件,而只是为访问一些东西提供共用系统接口,如音乐。
2012-08-07 20:50:42 360
原创 cocoa二进制数据编程
数据对象(data object):二进制数据能被包装进Foundation和Core Foundation数据对象中,数据对象提供了操作数据的面向对象封装。数据对象是桥接对象(bridged objects),所以你能在Foundation和Core Foundation中自由切换。数据对象能自动的分配和回收数据缓冲区。数据对象(data objects)还能被存储在集合中,能被写入
2012-08-07 20:34:55 365
原创 apue学习之线程创建
线程标识:每个进程有一个进程ID,每一个线程也有一个线程ID,进程ID在系统中是唯一的,,线程ID不同,它只在所属的进程环境中才有效。pthread_t在不同的系统中实现是不一样的,mac系统中它是一个结构体类型指针,所以要用函数来比较两个线程是否是一个线程。#include int pthread_equal(, );线程可以通过函数获得自身的id;#include pth
2012-08-07 11:37:31 305
原创 套接字编程简介
套接字地址结构:大多数套接字函数都需要一个指向套接字地址结构指针作为参数,每个协议族都定义了自己的套接字地址结构,这些结构名都已sockaddr_开头,并以对应每个协议族的后缀结尾。IPv4套接字地址结构:它也叫做“网际套接字地质结构”,它以sockaddr_in命名。定义在头文件中。它的POSIX定义:struct in_addr{ in_addr_t s_addr;
2012-08-07 11:06:08 294
原创 OPenGL基本概念
OPenGL函数语法:OPenGL函数都加了前缀“gl”,常量以“GL_“开头,都是大写字母。OpenGL很多函数的后缀表示参数数据类型,比如glVertex3f()后面的”3f“表示函数形参有3个,都是float类型。函数后缀和参数数据类型表:后缀 数据类型 对应c语言类型 OPenGL类型定
2012-08-07 09:21:22 460
原创 OpenGLES入门1
GLuint viewRenderbuffer,viewFramebuffer; //两个无符号整形代表opengles的帧缓冲区和渲染缓冲区GLuint depthRenderbuffer //代表opengles的深度缓冲区帧缓冲区基本上是一块内存,用于保存渲染单独一帧所需要的各种数据。(帧就不用多说了,就相当于电影的一
2012-08-06 18:06:02 604
转载 NSInvocationOperation多线程教程
多线程编程是防止主线程堵塞,增加运行效率等等的最佳方法。而原始的多线程方法存在很多的毛病,包括线程锁死等。在Cocoa中,Apple提供了 NSOperation这个类,提供了一个优秀的多线程编程方法。本次介绍NSOperation的子集,简易方法的NSInvocationOperation:@implementation MyCustomClass - (void)lau
2012-08-06 14:05:12 259
转载 runloop
首先看两个runloop的事例。第一个:#include static void _perform(void *info __unused) { printf("hello\n"); } static void _timer(CFRunLoopTimerRef timer __unused, void *info) {
2012-08-06 13:59:12 420
原创 iphone多线程练习之火车售票模拟
#import @interface LeeAppDelegate : UIResponder { int tickets; int count; NSThread *ticketsThreadOne; NSThread *ticketsThreadTwo; NSCondition *ticketsCondition;}@property
2012-08-06 13:19:30 1153
原创 Run Loops
Run Loops是线程相关的基础部分,run loop的目的是在有工作的时候让我们的线程忙起来(keep busy)在没有工作的时候让线程睡眠。
2012-08-06 12:49:21 347
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人