
应用开发
xia0615
认真,负责,善于交流
展开
-
线程之间的通信
线程间通信通过以下方法 (Without GCD)– performSelectorOnMainThread:withObject:waitUntilDone:– performSelector:onThread:withObject:waitUntilDone:– performSelector:withObject:afterDelay:– performSelectorI原创 2012-09-19 16:21:02 · 969 阅读 · 0 评论 -
UIScrollView 原理详解
转自:http://www.cocoachina.com/iphonedev/sdk/2010/1224/2503.htmlscroll view 原理 在滚动过程当中,其实是在修改原点坐标。当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器。假如在计时器到点后没有发生手指移动事件,那么 scroll view 发送 tracking eve转载 2012-11-20 14:31:27 · 385 阅读 · 0 评论 -
sip跟xmpp协议
SIP(Session Initiation Protocol)是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话。这些会话可以是Internet多媒体会议、IP电话或多媒体分发。会话的参与者可以通过组播(multicast)、网状单播(unicast)或两者的混合体进行通信。SIP 会话使用多达四个主要组件:SIP 用户代理、SIP 注册服务器、SIP 代理服务器和原创 2012-11-20 15:29:25 · 2679 阅读 · 0 评论 -
block 简单使用
int minus = 7; int(^myBlock)(int) = ^(int num ){ int i = num *minus; NSLog(@"---%d",i); return i; }; int t= myBlock(10); NSLog(@"-t==%d",t); 1.int为返原创 2012-10-12 11:24:47 · 317 阅读 · 0 评论 -
判断是否是高清
#define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640,960), [[UIScreen mainScreen] currentMode].size) : NO)原创 2012-12-31 09:41:44 · 394 阅读 · 0 评论 -
死锁
产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件:若干进程之间形原创 2012-12-18 14:45:06 · 1277 阅读 · 0 评论 -
17个常用代码整理
17个常用代码整理转自:http://www.cocoachina.com/newbie/tutorial/2012/1220/5377.html1.判断邮箱格式是否正确的代码//利用正则表达式验证-(BOOL)isValidateEmail:(NSString *)email{NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za转载 2012-12-20 09:53:09 · 682 阅读 · 0 评论 -
NSArray和NSMutableArray对象的使用
NSArray和NSMutableArray对象的使用/* 初始化方法: 1.init返回一个空数组 2.initWithArray从已有数组初始化 3.initWithContentsOfFile//从plist文件加载 4.initWithContentsOfUrl//从网络地址上获取 5.initWithObject用一个对象初始化 6.initWithObj转载 2012-12-20 10:27:56 · 407 阅读 · 0 评论 -
GDataXML(安装说明)
GDataXML1. 从http://code.google.com/p/gdata-objectivec-client/downloads/list下载“gdata-objective-c client library.”2. 解压缩文件,找到Source\XMLSupport,并且将其中的GDataXMLNode.h 和 GDataXMLNode.m文件拖到项目中3.转载 2012-12-20 11:39:34 · 429 阅读 · 0 评论 -
DDLog
1.http://www.cnblogs.com/xiaoweige/archive/2012/10/08/lumberjack.html2.http://ikevin.tw/359注意是否使用arc1.使用之前要进行初始化static constint ddLogLevel = LOG_LEVEL_VERBOSE;2.使用之前要设置等级原创 2013-01-08 11:47:00 · 2131 阅读 · 0 评论 -
打开mac端 ftp
第一种:通过命令行来开启关闭,如下所示:开启 FTP Serversudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist关闭 FTP Serversudo -s launchctl unload -w /System/Library/LaunchDaemons/ftp.plist第二种:通过第三方图原创 2013-01-09 15:09:20 · 1999 阅读 · 0 评论 -
优化性能
1。NSAutoreleasePool负责释放一个代码块中的自动释放对象。一般都是由UIKit来创建的。不过有些情况下需要手动创建NSAutoreleasePool例如,如果在代码中创建了大量的临时对象,你将注意到内存使用量在增加,直到这些对象被释放。问题是只有当UIKit耗尽了 autorelease pool,这些对象才会被释放,也就是说当不再需要这些对象之后,这些对象还在内存中占据着原创 2013-04-12 15:44:26 · 602 阅读 · 0 评论 -
去处tableview的背景
[mTableView setBackgroundView:[[UIViewalloc] init]]; [mTableView setBackgroundColor:[UIColorclearColor]];原创 2013-05-30 16:37:25 · 596 阅读 · 0 评论 -
获取经纬度
locationManager = [[CLLocationManageralloc] init]; locationManager.delegate =self; locationManager.desiredAccuracy =kCLLocationAccuracyBest; [locationManagerstartUpdatingLocatio原创 2012-11-15 15:15:08 · 982 阅读 · 1 评论 -
NsOperation
所有operation objects都支持以下关键特性:支持建立基于图的operation objects依赖。可以阻止某个operation运行,直到它依赖的所有operation都已经完成。支持可选的completion block,在operation的主任务完成后调用。支持应用使用KVO通知来监控operation的执行状态。支持operation优先级,原创 2012-10-25 16:14:28 · 377 阅读 · 0 评论 -
frame与bounds的区别比较
翻译文档上的 bounds是指这个view在它自己坐标系的坐标和大小 而frame指的是这个view在它superview的坐标系的坐标和大小 区别主要在坐标系这一块。 很明显一个是自己为原点的坐标系,一个是以屏幕为原点的坐标系。绝对坐标。。。相对坐标。。。比如屏幕旋转的时候就要以相对来重绘。 frame 如果一个按钮,是在表格里,按钮的frame 的坐标也是相对的,并不是相对屏幕,也就是说是转载 2012-10-30 15:44:05 · 378 阅读 · 0 评论 -
本地push通知
UILocalNotification *lcNotification = [[UILocalNotificationalloc]init]; if (lcNotification) { NSDate *newDate = [NSDatenew]; lcNotification.fireDate = [newDate dateByAddingTim原创 2012-10-11 10:10:01 · 421 阅读 · 0 评论 -
Block
Block 词法^ [返回类型][参数] { 内容 }Blocks as Data定义Block pointer. 看起来像函数pointer: void (*callable)(void);void (^callable)(void);下面这是一个复杂的block pointer,它的参数也是一个block pointer.char *转载 2012-09-19 16:14:01 · 344 阅读 · 0 评论 -
获取当前时间
NSDateFormatter *dateFormat = [[NSDateFormatteralloc] init]; dateFormat.dateFormat =@"yyyy-mm-dd HH:mm:ss"; NSString *str = [dateFormatstringFromDate:[NSDate date]]; NSLog(@"%@",s原创 2012-10-11 13:42:07 · 324 阅读 · 0 评论 -
进入后台之后程序还可以执行
UIBackgroundTaskIdentifier bgTask;判断设备是否支持后台 UIDevice* device = [UIDevicecurrentDevice];BOOL backgroundSupported = NO;if ([device respondsToSelector:@selector(isMultitaskingSupporte原创 2012-10-11 17:23:41 · 424 阅读 · 0 评论 -
Sqlit3 简单操作
1。创建数据库并且打开- (void)open_db{ @synchronized(self){ NSArray *pathArray =NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES); NSString *pat原创 2012-10-17 17:58:58 · 629 阅读 · 0 评论 -
xcode 项目代码行统计
统计Xcode项目代码行数 1、打开终端。 2、cd到你项目的路径。 3、输入下面的指令: grep -d recurse "\n" classes | wc -l classes,如果你不是默认的classes路径,改之。转载 2012-10-29 15:37:01 · 654 阅读 · 0 评论 -
在UITableViewCell上建立UILable多行显示
- (UITableViewCell *)tableView:(UITableView *)tableViewcellForRowAtIndexPath:(NSIndexPath *)indexPath { staticNSString *CellIdentifier =@"Cell"; UITableViewCell *cell = [tableViewdequeueRe原创 2012-10-19 14:53:43 · 1716 阅读 · 0 评论 -
kvo
按照观察者模式的订阅机制,KVO 中必然有如下三个方法:A. 订阅(Subscribe)- (void) addObserver: (NSObject*) anObserverforKeyPath: (NSString*) aPathoptions: (NSKeyValueObservingOptions) optionscontext: (void*) aContext;原创 2012-10-19 15:27:39 · 351 阅读 · 0 评论 -
viewDidLoad, viewWillDisappear, viewWillAppear区别
viewWillAppear: Called when the view is about to made visible. Default doesnothing视图即将可见时调用。默认情况下不执行任何操作viewDidAppear: Called when the view has been fully transitioned onto the screen.Default转载 2012-10-19 14:55:18 · 344 阅读 · 0 评论 -
iOS平台下实现不同APP之间的通信
我们可以通过UIApplication的openURL方法来实现不同app之间的通信,如下面代码所示:NSURL *myURL = [NSURL URLWithString:@"todolist://www.acme.com?Quarterly%20Report#200806231300"]; [[UIApplication sharedApplication] openURL:my转载 2012-10-19 16:11:17 · 834 阅读 · 0 评论 -
记录园子里的一篇有关CALayer与UIView的关系
CALayer属于Core Animation部分的内容,比较重要而不太好理解。以下是园子中看到的一篇文章的摘录:1. UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它。它本身完全是由CoreAnimation来实现的。它真正的绘图部分,是由一个CALayer类来管理。UIView本身更像是一个CALayer的管理器,访问它的跟绘图和跟坐标有关的属性,例如frame,b转载 2012-10-30 13:55:10 · 537 阅读 · 0 评论 -
解析:Program received signal: “EXC_BAD_ACCESS"
在练习时,有这么段代码: CALayer *sublayer = [CALayer layer]; sublayer.backgroundColor = [UIColor blueColor].CGColor; sublayer.shadowOffset = CGSizeMake(0, 3); sublayer.shadowRadius = 5.0;转载 2012-10-30 14:54:25 · 665 阅读 · 0 评论 -
判断字符是否为空
[nickName hasPrefix:@"null"]原创 2013-05-31 15:27:51 · 623 阅读 · 0 评论