Fork me on GitHub

2012年2月8日

摘要: 转载:http://blog.csdn.net/favormm/article/details/7231160coreData是iOS开发中数据库相关的核心框架,但是在多线程处理的情况下有点麻烦。官方有三种方法1. 每一个thread都有一个NSManageObjectContext2. 只有一个NSManageObjectContext,但是由一个线程来合并数据3. 只有一个NSManageObjectContext,但得加锁的方法控制,达到线程同步。这三种方法都在网方文档中有介绍。今天我自己介绍一种方法,并用有demo展示。设计思路是:专门开启一个线程,用来处理所有的数据库操作,有一个缓冲 阅读全文
posted @ 2012-02-08 21:26 pengyingh 阅读(1337) 评论(0) 推荐(0)
摘要: 扫描wifi信息:http://code.google.com/p/uwecaugmentedrealityproject/http://code.google.com/p/iphone-wireless/条形码扫描:http://zbar.sourceforge.net/iphone/sdkdoc/install.htmltcp/ip的通讯协议:http://code.google.com/p/cocoaasyncsocket/voip/sip:http://code.google.com/p/siphon/http://code.google.com/p/asterisk-voicemai 阅读全文
posted @ 2012-02-08 21:23 pengyingh 阅读(110) 评论(0) 推荐(0)
摘要: 首先,我们需要写一个头文件 定义预处理命令如下:#ifdef DEBUG#define debug_NSLog(format, ...) NSLog(format, ## __VA_ARGS__)#else#define debug_NSLog(format, ...)#endif接着我们点击项目的TARGETS栏,找到GCC 4.2 -preprocessing这一项,添加预定义宏 DEBUG如下图所示:这样 当我们在debug状态下就会显示log信息,而在release下就不会显示了。 阅读全文
posted @ 2012-02-08 21:22 pengyingh 阅读(981) 评论(0) 推荐(0)
摘要: 如题,有两个view: view1,view2view2添加view1到中,如果view2大于view1,或者view2的坐标不全在view1的范围内,view2是盖着view1的,意思就是超出的部份也会画出来UIView有一个属性,clipsTobounds 默认情况下是NO。如果,我们想要view2把超出的那部份隐藏起来的话,就得改变它的父视图也就view1的clipsTobounds属性值。view1.clipsTobounds = YES;no的情况:yes的情况: 阅读全文
posted @ 2012-02-08 21:15 pengyingh 阅读(2630) 评论(0) 推荐(1)
摘要: 在进行网络数据通信的时候,经常会遇到NSData类型的数据。在该数据是dictionary结构的情况下,系统没有提供现成的转换成NSDictionary的方法,为此可以通过Category对NSDictionary进行扩展,以支持从NSData到NSDictionary的转换。声明和实现如下:@interface NSDictionary (Helpers)+ (NSDictionary *)dictionaryWithContentsOfData:(NSData *)data;@end@implementation NSDictionary (Helpers)+ (NSDictionary 阅读全文
posted @ 2012-02-08 21:12 pengyingh 阅读(523) 评论(0) 推荐(0)
摘要: NSURLCache1. 初始化相关的几个方法:sharedURLCache;setSharedURLCache;initWithMemoryCapacitysharedURLCache方法返回一个NSURLCache实例。默认情况下,内存是4M,4* 1024 * 1024;Disk为20M,20 * 1024 * 1024;路径在(NSHomeDirectory)/Library/Caches/(current application name, [[NSProcessInfo processInfo] processName])setSharedURLCache可以通过这个方法来改变默认 阅读全文
posted @ 2012-02-08 21:02 pengyingh 阅读(4796) 评论(0) 推荐(2)
摘要: 以前一直迷恋于iphone上的alertview,popoverwindow是怎么做的,也就是怎样再iphone上弹出不满屏显示的模态对话窗口。昨天搞放大镜时突然得到了灵感。今天sb回来(要自虐,去sb会)突然又想到这个事,就尝试了一下,成功了。这里分享下思路。其实一直以来我们都收到了一个惯性思维的影响,那就是 iphone的程序只有一个window,而且window是继承自view的,再加上IB里不可以创建window,所以一直把window这个东西给忽略掉了。其实目前那些popover的menu,loadingview之类的都是搞view,可以解决。但显示的时候其实挺麻烦的,得先保证全屏, 阅读全文
posted @ 2012-02-08 21:00 pengyingh 阅读(1253) 评论(0) 推荐(0)
摘要: 这里介绍一下网友开源的MBProgressHUD类,实现等待框,一、网上下载 MBProgessHUD 类文件,直接导入到工程即可二、示例分析在我的工程中示例如下:1)在ShowImageViewController.h头文件代码如下:#import<UIKit/UIKit.h>#import"MBProgressHUD.h"@interfaceShowImageViewController :UIViewController<MBProgressHUDDelegate> { NSString *_picUrlString; UIImageView 阅读全文
posted @ 2012-02-08 20:41 pengyingh 阅读(5919) 评论(0) 推荐(0)
摘要: UIActionSheet类系IOS开发中实现警告框的重要的类,而在好多应用中,都对它进行了扩展,今天介绍一下自定义风格的UIActionSheet一、自定义CustomActionSheet类CustomActionSheet类继承UIActionSheet,具体的实现如下所示:1)CustomActionSheet.h头文件#import <Foundation/Foundation.h>@interface CustomActionSheet : UIActionSheet{UIToolbar* toolBar;UIView* view;}@property(nonatomi 阅读全文
posted @ 2012-02-08 20:40 pengyingh 阅读(16064) 评论(3) 推荐(0)
摘要: //通过区分字符串-(BOOL)validateEmail:(NSString*)email{ if((0 != [email rangeOfString:@"@"].length) && (0 != [email rangeOfString:@"."].length)) { NSCharacterSet* tmpInvalidCharSet = [[NSCharacterSet alphanumericCharacterSet] invertedSet]; NSMutableCharacterSet* tmpInvalidMutable 阅读全文
posted @ 2012-02-08 19:56 pengyingh 阅读(1938) 评论(0) 推荐(1)
摘要: iphone应用之间调用步骤: 1)在plist文件中,注册对外接口 在xcode group&files 里面,展开 resources选择<app>info.plist 鼠标右击information property list ,然后从列表中选择URL types 右击 add row 添加一个对象(item)右击item add row 从列表中选择 URLSchemes 再右击添加一个对象(item1) 将item1得值设置为:myapp 这个myapp就是对外接口,其它应用可以通过它,调用该应用 plist如下图所示: 2)调用方法 在你需要调用上面注册过对外接 阅读全文
posted @ 2012-02-08 19:47 pengyingh 阅读(403) 评论(0) 推荐(0)
摘要: 微博对每条信息有 140 字的上限限制,下面微博字数统计函数,做微博客户端应用的开发者可以以此加入字数统计功能以方便用户- (int)countWord:(NSString*)s{ int i,n=[s length],l=0,a=0,b=0; unichar c; for(i=0;i<n;i++){ c=[s characterAtIndex:i]; if(isblank(c)){ b++; }else if(isascii(c)){ a++; }else{ l++; } } if(a==0 && l==0) return... 阅读全文
posted @ 2012-02-08 19:44 pengyingh 阅读(701) 评论(0) 推荐(0)
摘要: //获取设备状态,是否插入耳机,如果插入耳机,则返回“YES" BY Leisure+ (BOOL)isHeadphone{UInt32 propertySize = sizeof(CFStringRef);CFStringRef state = nil;AudioSessionGetProperty(kAudioSessionProperty_AudioRoute,&propertySize,&state);//return @"Headphone" or @"Speaker" and so on.//根据状态判断是否为耳机状 阅读全文
posted @ 2012-02-08 19:39 pengyingh 阅读(458) 评论(0) 推荐(0)
摘要: 在 iPhone 或 iPad 的开发中,除了用touchesBegan / touchesMoved / touchesEnded这组方法来控制使用者的手指触控外,也可以用UIGestureRecognizer的衍生类別来进行判断。用UIGestureRecognizer的好处在于有现成的手势,开发者不用自己计算手指移动轨迹。UIGestureRecognizer的衍生类別有以下几种:UITapGestureRecognizerUIPinchGestureRecognizerUIRotationGestureRecognizerUISwipeGestureRecognizerUIPanGes 阅读全文
posted @ 2012-02-08 19:38 pengyingh 阅读(171) 评论(0) 推荐(0)
摘要: Core Text提供了一系列方便的函数,可以很容易的把文本绘制在屏幕上,对于一个Frame来说,一般并不需要担心文本的排列问题,这些Core Text的函数都可以直接搞定,只要给他一个大小合适的CGRect就可以。但,在某些情况下,我们还希望知道这段文本在绘制之后,对应绘制的字体字号设置,在屏幕上实际占用了多大面积。举例来说,有文本段落a,屏幕大小rect,通常做法是以rect创建path,然后创建CTFramesetter,再然后创建CTFrame,最后用CTFrameDraw画出来,这时候,往往文本段落占用的实际面积会小于rect,这时候就有必要获得这段文本所占用的真正面积。最理想的情况 阅读全文
posted @ 2012-02-08 19:34 pengyingh 阅读(628) 评论(0) 推荐(0)
摘要: 原贴地址:http://hi.baidu.com/jwq359699768/blog/item/5df305c893413d0a7e3e6f7b.htmlcore text 这个包默认是没有的,要自己手动添加进来。在IOS中利用core text对文本进行排版的几个关键点如下: 字间距:kCTKernAttributeName 行间距:kCTParagraphStyleSpecifierLineSpacingAdjustment 或 kCTParagraphStyleSpecifierLineSpacing(不推荐使用) 段间距:kCTParagraphStyleSpecifierParagr 阅读全文
posted @ 2012-02-08 19:33 pengyingh 阅读(9601) 评论(0) 推荐(1)
摘要: 转自:http://lists.apple.com/archives/quartz-dev/2008/Mar/msg00079.html- (CGSize) measureFrame: (CTFrameRef) frame forContext: (CGContext *) cgContext{//frame为排版后的文本CGPathRefframePath =CTFrameGetPath(frame);CGRectframeRect =CGPathGetBoundingBox(framePath);CFArrayReflines =CTFrameGetLines(frame);CFIndex 阅读全文
posted @ 2012-02-08 19:30 pengyingh 阅读(2809) 评论(0) 推荐(0)
摘要: 在iOS中,可以使用剪贴板实现应用程序之中以及应用程序之间实现数据的共享。比如你可以从iPhone QQ复制一个url,然后粘贴到safari浏览器中查看这个链接的内容。概述 在iOS中下面三个控件,自身就有复制-粘贴的功能:1、UITextView2、UITextField3、UIWebViewUIKit framework提供了几个类和协议方便我们在自己的应用程序中实现剪贴板的功能。1、UIPasteboard:我们可以向其中写入数据,也可以读取数据2、UIMenuController:显示一个快捷菜单,用来复制、剪贴、粘贴选择的项。3、UIResponder中的 canPerformAc 阅读全文
posted @ 2012-02-08 19:23 pengyingh 阅读(295) 评论(0) 推荐(0)
摘要: 引入:iOS开发中我们会遇到程序抛出异常退出的情况,如果是在调试的过程中,异常的信息是一目了然,但是如果是在已经发布的程序中,获取异常的信息有时候是比较困难的。iOS提供了异常发生的处理API,我们在程序启动的时候可以添加这样的Handler,这样的程序发生异常的时候就可以对这一部分的信息进行必要的处理,适时的反馈给开发者。不足的地方是,并不是所有的程序崩溃都是由于发生可以捕捉的异常的,有些时候是因为内存等一些其他的错误导致程序的崩溃,这样的信息是不在这里体现的。这里做了一个简单的类,进行很基本的操作,可以添加和获取Handler,捕获到异常后将信息写入到app的Documens下的Excep 阅读全文
posted @ 2012-02-08 19:19 pengyingh 阅读(694) 评论(0) 推荐(0)
摘要: Block可以帮助我们组织独立的代码段,并提高复用性和可读性。iOS4在UIKit中引入了该特征。超过100个的Apple API都使用了Block,所以这是一个我们必须开始熟悉的知识。Block是什么样的?你可以使用^操作符来声明一个Block变量,它表示一个Block的开始。intnum1=7; int(^aBlock)(int)=^)intnum2){ returnnum1+nunm2; };在如上代码中我们将Block声明为一个变量,所以可以将它当做一个函数中使用:NSLog(@"%d",aBlock(49));//adds49to7whichgivesus56.我 阅读全文
posted @ 2012-02-08 19:01 pengyingh 阅读(22570) 评论(0) 推荐(6)

导航