- 博客(68)
- 资源 (62)
- 收藏
- 关注
转载 IOS NSRunloop 的使用
利用NSRunLoop阻塞NSOperation线程在使用NSOperationQueue简化多线程开发中介绍了多线程的开发,我这里主要介绍一下使用NSRunLoop阻塞线程。主要使用在NStimer定时启用的任务或者异步获取数据的情况如socket获取网络数据,要阻塞线程,直到获取数据之后在释放线程。下面是线程中没有使用NSRunLoop阻塞线程的代码和执行效果:线程类:#i
2013-03-29 09:53:59 948
转载 使用NSOperationQueue简化多线程开发和队列的优先级
多线程开发是一件需要特别精心的事情,即使是对有多年开发经验的工程师来说。为了能让初级开发工程师也能使用多线程,同时还要简化复杂性。各种编程工具提供了各自的办法。对于iOS来说,建议在尽可能的情况下避免直接操作线程,使用比如NSOperationQueue这样的机制。可以把NSOperationQueue看作一个线程池,可往线程池中添加操作(NSOperation)到队列中。线程池中
2013-03-29 09:40:41 8850
转载 IOS 深入浅出Cocoa之 sqlite 数据库
一,sqlite 简介前面写了一篇博文讲如何在 C# 中使用 ADO 访问各种数据库,在移动开发和嵌入式领域也有一个轻量级的开源关系型数据库-sqlite。它的特点是零配置(无需服务器),单磁盘文件存储数据(就像fopen一样),平台无关性,使用起来简单又高效。这些特点让其非常适合移动开发和嵌入式领域。当然,sqlite 也因其力求简单高效,也就限制了它对并发,海量数据的处理。下面,我就再接再
2013-03-29 08:31:01 1785
转载 IOS Socket编程
iphone的标准推荐CFNetwork C库编程.但是编程比较烦躁。在其它OS往往用类来封装的对Socket函数的处理。比如MFC的CAsysncSocket.在iphone也有类似于开源项目.cocoa AsyncSocket库,官方网站.它用来简化CFnetwork的调用.一.在项目引入ASyncSocket库 1.下载ASyncSocket库源码 2.把ASyncSocke
2013-03-29 08:17:03 1240
转载 ios图片加水印或文字
1.加文字-(UIImage *)addText:(UIImage *)img text:(NSString *)text1{ //get image width and height int w = img.size.width; int h = img.size.height; CGColorSpaceRef colorSpace = CGColo
2013-03-27 21:07:46 3258
转载 IOS 摄像头使用(1)-UIImagePickerController
IOS有两种拍照与拍摄视频的方式1. 直接使用UIImagePickerController, 这可以提供一个简单便捷的拍照与选择图库里图片的功能.2.另一种方式就是通过AV Foundation framework,来完全自定义拍照的界面与选择图库的界面.这里介绍第一种, 如何使用UIImagePickerController.一.拍照步骤
2013-03-27 21:06:42 6585
转载 IOS 调用iphone闪光灯
添加:AVFoundation库#import .h@interface xxxxx : UIViewController {AVCaptureSession *AVSession;}@property(nonatomic,retain) AVCaptureSession *AVSession;.m@synthesize AVSession;
2013-03-26 15:46:22 1728
转载 IOS 使用subversion管理iOS源代码
使用subversion管理iOS源代码1、安装和配置subversion服务器在windows 服务器上安装VisualSVN-Server,下载地址http://www.visualsvn.com/server/download/。采用默认安装,安装完成创建一个服务器的代码仓库hello,如图所示。然后在Users右键创建用户tony,再回到hello仓库右键-
2013-03-26 15:06:47 857
转载 iOS Javascript与Objective-C互操作
编写目的:本文重点阐述在iOS系统上通用的本地Objective-C代码与基于Javascript的Web的应用的互操作的基本方法,并通过具体范例说明两种代码的交互方式;阅读前提:熟悉iOS系统的UIWebView的功能、调用方法,相应的UIWebViewDelegate委托的使用方法,并了解Javascript函数的基本语法与函数调用方法;说明:正文部分红色字体表示Javascript代
2013-03-26 14:54:53 986
转载 iOS 在地图上绘制出你运动的轨迹
iOS中的MapKit集成了google地图api的很多功能加上iOS的定位的功能,我们就可以实现将你运行的轨迹绘制到地图上面。这个功能非常有用,比如快递追踪、汽车的gprs追踪、人员追踪等等。这篇文章我们将使用Map Kit和iOS的定位功能,将你的运行轨迹绘制在地图上面。实现 在之前的一篇文章描述了如何在地图上显示自己的位置,如果我们将这些位置先保存起来,然后串联起来绘制到地图上面
2013-03-26 14:22:13 14384 1
转载 iOS 在google地图上显示自己的位置
一行代码显示你的位置iOS中的MapKit集成了定位的功能,使用一行代码就可以在google地图上展示出自己当前的位置,代码如下:-(IBAction) showLocation:(id) sender { if ([[btnShowLocation titleForState:UIControlStateNormal] isEqualToString:@"S
2013-03-26 14:19:46 1072
转载 iOS Objective-C与JavaScript的交互
UIWebView是iOS最常用的SDK之一,它有一个stringByEvaluatingJavaScriptFromString方法可以将javascript嵌入页面中,通过这个方法我们可以在iOS中与UIWebView中的网页元素交互。stringByEvaluatingJavaScriptFromString 使用stringByEvaluatingJavaScriptFrom
2013-03-26 14:17:06 1295 1
转载 IOS NSNotificationCenter消息通信机制介绍
作用:NSNotificationCenter是专门供程序中不同类间的消息通信而设置的.注册通知:即要在什么地方接受消息 [[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(mytest:) name:@" mytest"object:nil]; 参
2013-03-26 10:29:29 21535
转载 iOS 开发之应用首次启动显示用户引导
这个功能的重点就是在如何判断应用是第一次启动的. 其实很简单我们只需要在一个类里面写好用户引导页面 基本上都是使用UIScrollView 来实现,新建一个继承于UIViewController的类 命名为 UserGuideViewController ,在UserGuideViewController.m 写 1 - (void)viewDidLoad 2 { 3
2013-03-26 10:15:50 10952
原创 IOS NSUserDefault的使用
创建一个user defaults方法有多个,最简单得快速创建方法: NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];添加数据到 user defaults: [accountDefaults setObject:nameField.text forKey:UserDefault
2013-03-26 10:01:42 1103
原创 IOS UIApplicationDelegate
UIApplicationDelegate 包含下面几个函数监控应用程序状态的改变:–application:didFinishLaunchingWithOptions:–applicationDidBecomeActive:–applicationWillResignActive:–applicationDidEnterBackground:–applic
2013-03-26 09:54:00 846
转载 IOS applicationWillResignActive
一、挂起 当有电话进来或者锁屏,这时你的应用程会挂起,在这时,UIApplicationDelegate委托会收到通知,调用 applicationWillResignActive 方法,你可以重写这个方法,做挂起前的工作,比如关闭网络,保存数据。 C代码 1. - (void)applicationWillResignActive:(UIApplication*)ap
2013-03-26 09:33:02 29450 1
转载 IOS 数据持久化
9.1 数据持久化概述iOS中可以有四种持久化数据的方式: 属性列表、对象归档、SQLite3和Core Data9.2 iOS应用程序目录结构iOS应用程序运行在Mac os模拟器时候,有一下临时目录模拟器3.1.3为例子:/Users/tony/Library/Application Support/iPhone Simulator/3.1.3/Applications
2013-03-26 08:41:24 993
转载 iOS 定位服务
iOS中有三个定位服务组件: Wifi定位,通过查询一个Wifi路由器的地理位置的信息。比较省电,iPod touch和iPad也可以采用。 蜂窝基站定位,通过移动运用商基站定位。也适合有3G版本的iPod touch和iPad。 GPS卫星定位,通过3-4颗GPS定位位置定位,最为准确,但是耗电量大,不能遮挡。Core LocationCore Location是
2013-03-26 08:40:06 7109 1
转载 IOS SQLite简单数据库使用
全部由代码实现。不需要用到sqlite manager。记得要添加framework:libsqlite3.dylib 我在看的时候还有一个libsqlite3.0.dylib。应该后面的那个版本更新一点。我现在要使用SQLite3.0创建一个数据库,然后在数据库中创建一个表格。首先要引入SQLite3.0的lib库。然后包含头文件#import 【1】打开数据库,
2013-03-25 20:35:51 765
转载 IOS NSNotificationCenter
NSNotificationCenter有什么作用,简单说之,就是两个不相干的对象之间可以通过他来传递消息,只要你把相关发送的消息和处理的事件在他那里注册就行了。我们可以这样理解:NSNotificationCenter就是一个信息中心,有很多用户已经声明他们需要这些信息。当有信息更新的时候,通过这个NSNotificationCenter就可以以广播的形式,将信息更新的消息在整个应用程序中间
2013-03-25 17:29:07 1036
转载 iOS 本地推送
第一步:创建本地推送// 创建一个本地推送UILocalNotification *notification = [[[UILocalNotification alloc] init] autorelease];//设置10秒之后NSDate *pushDate = [NSDate dateWithTimeIntervalSinceNow:10];if (notificatio
2013-03-25 17:23:24 625
转载 IOS UIApplication sharedApplication详解
iPhone应用程序是由主函数main启动,它负责调用UIApplicationMain函数,该函数的形式如下所示: int UIApplicationMain ( int argc, char *argv[], NSString *principalClassName, NSString *delegateClassName ); 那么UIApplica
2013-03-25 17:21:47 822
原创 iOS开发 协议与委托(Protocol and Delegate)
1 协议:协议,类似于Java或C#语言中的接口,它限制了实现类必须拥有哪些方法。它是对对象行为的定义,也是对功能的规范。示例:123456789// GoodChild.h#import @protocol GoodChild -(void)filialPiety;@end
2013-03-23 21:57:13 604
转载 iOS keychain的使用
通常情况下,我们用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码、证书等等,就需要使用更为安全的keychain了。keychain里保存的信息不会因App被删除而丢失,在用户重新安装App后依然有效,数据还在。使用苹果官方发布的KeychainItemWrapper或者SFHFKeychainUtils很方便,后来看到 iphone使用keychain来存取用户
2013-03-23 21:00:20 737
转载 IOS 裁剪图片
方法1: - (void)drawRect:(CGRect)rect {CGContextRef context=UIGraphicsGetCurrentContext();//设置倒立CGContextRotateCTM(context,M_PI);//重新设置坐标 self.bounds获取整个屏幕的区域。CGContextTr
2013-03-23 20:57:58 9493 2
转载 IOS Core Location
IOS 支持三种检测当前位置的方式:手机基站、Wi-Fi、和GPS,其中GPS是经度最高的,同时也是最耗费手机电量的。一般情况下在室内是无法通过GPS获 取位置信息的,通过Wi-Fi获取位置的原理是通过网络提供商的IP地址信息来获取位置,经度不是很高,最后是通过手机基站获取位置,手机开机后会连接附 近的基站塔获取信号,通过基站可以得到手机所在的位置信息,基站越密集,所获取的位置信息经度就越高。
2013-03-23 20:57:12 853
原创 IOS 如何让你的应用快速兼容iPhone5
首先需要一个高级一点的Xcode版本,现在一般都要4.5以上了吧,然后将你的应用在模拟器中运行,选择 硬件-->设备--> iPhone (Retina 4- inch)这个就是iphone 5 的分辨率。没有做过适配的应用就会在上下两端出现黑边,那么如何做适配呢?1.首先需要添加一张启动图片,图片名字命名为Default-568h@2x.png,设置好以后,
2013-03-23 20:48:30 4002
原创 IOS 图片压缩
上传图片前的图片压缩:NSData *imageData = UIImageJPEGRepresentation(self.uploadImage , 0.75);//图片按0.75的质量压缩-》转换为NSDataNSString *file_name = [TimeUtil getDateStringWithFormat:@"yyyy-MM-dd-HH-mm-ss"];
2013-03-23 20:27:30 15934 2
原创 IOS AppDelegate中的方法和作用
AppDelegate的作用很简单,就是处理UIApplication的回调,而不应该负责用户界面的处理。1、- (void)applicationWillResignActive:(UIApplication *)application说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了2、- (void)applicationDidBecomeActiv
2013-03-23 20:19:28 6249
转载 IOS 协议和委托的理解
protocal存在的一个重要意义在于:正式协议(protocal)可以将业务中的方法定义剥离出来,形成一个单独的文件,这跟传统OO中的提取接口是不谋而合的。如果遇到二个系统需要交换数据,可以制定一套双方都遵守的protocal,然后这二个系统中都把这个协议文件添加到项目中,实现它即可。这一功能,非正式协议(@interface)就做不到。在obj-c的OO世界中,身为
2013-03-23 20:12:56 2685
转载 iOS 几个手势类
iphone3之前手势要通过重载UIResponder的几个手势响应函数自行处理。- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesEn
2013-03-23 20:08:16 730
转载 UITableView重用机制
dequeueResableCellWithIdentifier方法//对table view的数据进行绑定,即填充cell,自动调用n次- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewC
2013-03-23 20:03:06 4861 1
转载 IOS 关于NSNotification
这是一个观察者模式。首先在你需要监听的类中加入观察者:- (void)addObserver:(id)observer selector:(SEL)aSelector name:(NSString *)aName object:(id)anObject;这个观察者在监听到anObject发送名字为aName的notification时,调用selector的方法,在aSelector方
2013-03-22 14:50:48 3450
转载 iOS 动画总结----UIView动画
1.概述UIKit直接将动画集成到UIView类中,实现简单动画的创建过程。UIView类定义了几个内在支持动画的属性声明,当这些属性发生改变时,视图为其变化过程提供内建的动画支持。执行动画所需要的工作由UIView类自动完成,但仍要在希望执行动画时通知视图,为此需要将改变属性的代码包装到一个代码块中。2.UIView动画具体创建方法- (void)buttonPressed{
2013-03-22 14:42:16 697
原创 IOS scrollview的contentSize,frame,contentOffset
contentSize是scrollview可以滚动的区域,比如frame = (0 ,0 ,320 ,480) contentSize = (320 ,960),代表你的scrollview可以上下滚动,滚动区域为frame大小的两倍。contentOffset是scrollview当前显示区域顶点相对于frame顶点的偏移量,比如上个例子你拉到最下面,contentoffset就是(0 ,
2013-03-22 14:24:32 864
转载 IOS 结合UIImageView实现图片的移动和缩放
因为种种原因,需要在iphone应用中实现图片查看功能,由于iphone屏幕支持多点触摸,于是是想到用“手势”来实现图片的实时缩放和移动。借鉴无所不在的internet网络资料之后,终于实现此一功能,过程如下。一、首先实现原图显示(不缩放)新建MoveScaleImageView类,继承uiview。用于加载一个UIImage。它有两个主要的成员,一个UIImage对象用于指定
2013-03-22 14:23:31 1570
原创 IOS 开发的基本知识
1.了解main函数, UIApplication是初始化程序的核心,它接受4个参数。 其中argc和argv两个参数来自于main()接受的两个参数;另外两个String型参数分别表示程序的主要类(principal class)和代理类(delegate class)2、plist xml格式文件通常用于储存用户设置pch 预编译文件头xib nterfac
2013-03-22 14:13:38 959
转载 UIImageView增加手势
为UIImageView增加手势[ImageView addGestureRecognizer:我们自己的手势recognizer];如何创建一个手势?看看UITapGestureRecognizer 的用法吧//单指单击 UITapGestureRecognizer *singleFingerOne = [[UITapGestureRecognizer alloc] init
2013-03-22 14:11:57 3180
转载 IOS长按事件--UILongPressGestureRecognizer
//// touchViewController.m// touch//// Created by joe visen on 11-9-21.// Copyright 2011 mjrj.com. All rights reserved.//#import "touchViewController.h"@implementation touchVie
2013-03-22 11:03:37 1605
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人