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 阅读(1338) 评论(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 阅读(111) 评论(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 阅读(985) 评论(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 阅读(2633) 评论(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 阅读(4797) 评论(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 阅读(1259) 评论(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 阅读(5922) 评论(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 阅读(16066) 评论(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 阅读(1941) 评论(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 阅读(704) 评论(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 阅读(459) 评论(0) 推荐(0)
摘要: 在 iPhone 或 iPad 的开发中,除了用touchesBegan / touchesMoved / touchesEnded这组方法来控制使用者的手指触控外,也可以用UIGestureRecognizer的衍生类別来进行判断。用UIGestureRecognizer的好处在于有现成的手势,开发者不用自己计算手指移动轨迹。UIGestureRecognizer的衍生类別有以下几种:UITapGestureRecognizerUIPinchGestureRecognizerUIRotationGestureRecognizerUISwipeGestureRecognizerUIPanGes 阅读全文
posted @ 2012-02-08 19:38 pengyingh 阅读(176) 评论(0) 推荐(0)
摘要: Core Text提供了一系列方便的函数,可以很容易的把文本绘制在屏幕上,对于一个Frame来说,一般并不需要担心文本的排列问题,这些Core Text的函数都可以直接搞定,只要给他一个大小合适的CGRect就可以。但,在某些情况下,我们还希望知道这段文本在绘制之后,对应绘制的字体字号设置,在屏幕上实际占用了多大面积。举例来说,有文本段落a,屏幕大小rect,通常做法是以rect创建path,然后创建CTFramesetter,再然后创建CTFrame,最后用CTFrameDraw画出来,这时候,往往文本段落占用的实际面积会小于rect,这时候就有必要获得这段文本所占用的真正面积。最理想的情况 阅读全文
posted @ 2012-02-08 19:34 pengyingh 阅读(631) 评论(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 阅读(9602) 评论(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 阅读(2816) 评论(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 阅读(299) 评论(0) 推荐(0)
摘要: 引入:iOS开发中我们会遇到程序抛出异常退出的情况,如果是在调试的过程中,异常的信息是一目了然,但是如果是在已经发布的程序中,获取异常的信息有时候是比较困难的。iOS提供了异常发生的处理API,我们在程序启动的时候可以添加这样的Handler,这样的程序发生异常的时候就可以对这一部分的信息进行必要的处理,适时的反馈给开发者。不足的地方是,并不是所有的程序崩溃都是由于发生可以捕捉的异常的,有些时候是因为内存等一些其他的错误导致程序的崩溃,这样的信息是不在这里体现的。这里做了一个简单的类,进行很基本的操作,可以添加和获取Handler,捕获到异常后将信息写入到app的Documens下的Excep 阅读全文
posted @ 2012-02-08 19:19 pengyingh 阅读(695) 评论(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 阅读(22573) 评论(0) 推荐(6)
摘要: 引入:在IOS应用程序开发中,为了减少与服务端的交互次数,加快用户的响应速度,一般都会在IOS设备中加一个缓存的机制。下面将介绍如何在IOS设备中进行缓存。目的:使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,是程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来,减少对同一个url多次请求。解读:内存缓存我们可以使用sdk中的NSURLCache类。NSURLRequest需要一个缓存参数来说明它请求的url何如缓存数据的,我们先看下它的CachePolicy类型。1、NSURLRequestUseProtocolCachePolicy NSURLRequest默认的 阅读全文
posted @ 2012-02-08 18:57 pengyingh 阅读(6381) 评论(0) 推荐(2)
摘要: 在iPad/iPhone与服务端进行数据交互,一般都是通过webservice实现的,而从服务端返回的数据一般是xml,在这里就使用touchXML来解析xml,为了简单,这里就直接解析xml文件.准备:(在xCode项目中加入对touchXML的支持)操作步骤如下:1、下载最新touchXML类库(下载);2、将步骤1中的类库加入到xCode项目中,操作流程如下图所示:2-12-22-3提示:在实际开发中,为了保证路径一致,而非引用,可以把Copy itmes into destination group’s folder(if needed)”选项打上勾.3、因为TouchXML使用了li 阅读全文
posted @ 2012-02-08 18:54 pengyingh 阅读(742) 评论(0) 推荐(0)
摘要: btn.frame=CGRectMake(x, y, width, height);[btnsetTitle:@"search"forState:UIControlStateNormal];//设置按钮上的自体的大小//[btn setFont: [UIFont systemFontSize: 14.0]];//这种可以用来设置字体的大小,但是可能会在将来的SDK版本中去除改方法//应该使用btn.titleLabel.font= [UIFontsystemFontOfSize:14.0];[btn seBackgroundColor: [UIColorblueColor] 阅读全文
posted @ 2012-02-08 18:48 pengyingh 阅读(31579) 评论(1) 推荐(0)
摘要: 原贴地址:http://wiki.magiche.net/pages/viewpage.action?pageId=884775目录目录关于String:UIView与UIViewController:内存相关:runtime与cocoa架构:IO与网络相关:关于String:1,把一个整数,转换成一个NSString[NSString stringWithFormat:@"%d",3];2,比较两个NSString是否相等[@"test"isEqualToString:@"test"];3,@"abcdefg", 阅读全文
posted @ 2012-02-08 18:33 pengyingh 阅读(1068) 评论(0) 推荐(0)
摘要: ASIHTTPRequest 详解, http 请求终结者版权归旺财勇士所有〜转载需声名〜原贴地地址:http://wiki.magiche.net/pages/viewpage.action?pageId=2064410被李旭添加,被李旭最后更新于Mar 25, 2011(查看更改)目录目录发起一个同步请求创建一个异步请求队列请求请求队列上下文ASINetworkQueues, 它的delegate提供更为丰富的功能取消异步请求安全的内存回收建议向服务器端上传数据下载文件获取响应信息获取请求进度cookie的支持大文件断点续传ASIDownloadCache 设置下载缓存多种的缓存并存缓存策 阅读全文
posted @ 2012-02-08 18:27 pengyingh 阅读(40944) 评论(0) 推荐(4)
摘要: 在我们实际工程中,很多情况需要从网络上加载图片,然后将图片在imageview中显示出来,但每次都要从网络上请求,会严重影响用户体验,为了不是每次显示都需要从网上下载数据,希望将图片放到本地缓存,因此我们需要一个好的的缓存策略,今天我将我在项目工程中的实际经验分享给大家,我这里主要介绍一下强大的ASIHTTPRequest的缓存策略,以及使用方法: 下面是具体步骤:一、设置缓存策略 首先在SplitDemoAppDelegate委托代理中,实现如下代码: 在SplitDemoAppDelegate.h文件中,代码如下: 1 #import <UIKit/UIKit.h> 2 3 @ 阅读全文
posted @ 2012-02-08 18:25 pengyingh 阅读(13398) 评论(0) 推荐(1)
摘要: 转载自:http://blog.csdn.net/zhuqilin0/article/details/6653532 在手机应用程序开发中,为了减少与服务端的交互次数,加快用户的响应速度,一般都会在iOS设备中加一个缓存的机制,前面一篇文章介绍了iOS设备的内存缓存,这篇文章将设计一个本地缓存的机制。功能需求这个缓存机制满足下面这些功能。1、可以将数据缓存到本地磁盘。2、可以判断一个资源是否已经被缓存。如果已经被缓存,在请求相同的资源,先到本地磁盘搜索。3、可以判断文件缓存什么时候过期。这里为了简单起见这里,我们在请求url资源的时候,给每次请求的文件设定一个过期的时间。4、可以实现:如果.. 阅读全文
posted @ 2012-02-08 18:02 pengyingh 阅读(4742) 评论(0) 推荐(0)
摘要: 前面一片文章介绍了如何上传和下载文件,这篇文章将介绍一下如何在iOS设备中进行缓存。这篇文章将只介绍一下将内容缓存到内存中,下一篇文章就介绍一下在iOS磁盘上缓存内容。使用缓存的目的是为了使用的应用程序能更快速的响应用户输入,是程序高效的运行。有时候我们需要将远程web服务器获取的数据缓存起来,减少对同一个url多次请求。内存缓存我们可以使用sdk中的NSURLCache类。NSURLRequest需要一个缓存参数来说明它请求的url何如缓存数据的,我们先看下它的CachePolicy类型。1、NSURLRequestUseProtocolCachePolicy NSURLRequest默认的 阅读全文
posted @ 2012-02-08 17:49 pengyingh 阅读(576) 评论(0) 推荐(0)
摘要: 在用xcode开发的时候,很容易就在行末增加一些空格了.这些空格在上传到review board上后,就会被特别的颜色显示出来.因为一种好的编程风格是说,不应该在行末增加不必要的空格.如果是用eclipse写java,那么这种时候选中写好的代码,按ctrl+shift+F即可调整源码的风格,将尾部的空格去掉.可惜在xcode中并没有提供相应的功能.不过我们可以用命令行来达到这一效果,在工程目录下输入:find . -name "*.[hm]" | xargs sed -Ee 's/ +$//g' -i ""这样,就可以把源码中行末多出来的 阅读全文
posted @ 2012-02-08 17:44 pengyingh 阅读(733) 评论(0) 推荐(0)
摘要: 我们想试试,在iphone的safari或者app中的UIWebView控件,访问网络资源时,对于图片是否有缓存。如果有缓存的话,对于同一个图片,服务器会返回 304 Not Modified,这样浏览器就可以用本地的缓存图片来替代。我们首先在mac机上启动了一个apache服务,然后用tail -f 看 /var/log/apache2/access_log文件。在PC机上,多次访问这个apache服务上的图片时,log中会显示如下信息:192.168.8.211 - - [06/Sep/2011:19:17:33 +0800] "GET /~tangqiao/test.jpg H 阅读全文
posted @ 2012-02-08 17:41 pengyingh 阅读(4882) 评论(1) 推荐(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 17:35 pengyingh 阅读(1450) 评论(0) 推荐(0)
摘要: 1. Add/OverridecanBecomeFirstResponder,viewDidAppear: andviewWillDisappear: methods in your View Controller (这个View controller必须是顶层的):-(BOOL)canBecomeFirstResponder{ return YES;}-(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; [self becomeFirstResponder];}- (void)viewWillDisappea 阅读全文
posted @ 2012-02-08 17:31 pengyingh 阅读(361) 评论(0) 推荐(0)
摘要: 格式化代码1.指针“*”号的位置?如:NSString *varName;贴近变量名称,一行只能定义一个变量,不允许定义多个变量。2. 空格VS tabs?使用tab,一个tab设定为4个空格3.每行的长度?每行最多不得超过100个字,不是古老的80个字符。Xcode => Preferences => TextEditing => Page Guide at column /输入 100即可方法的声明和定义1.在- OR +和返回值之间留1个空格,方法名和第一个参数间不留空格。如:- (void)doSomethingWithString:(NSString *)theSt 阅读全文
posted @ 2012-02-08 17:28 pengyingh 阅读(970) 评论(0) 推荐(0)
摘要: iPhone中两种XML解析方式NSXMLParser和GDataXMLNode是本文要介绍的内容,很详细的介绍了NSXMLParser和GDataXMLNode这两种方式,常用的解析XML的方式分为两种,它们基于不同的API: 1.Tree-basedAPI:这种API的处理方式是将XML的结构看成是树,然后把树的各部分看成一个对象来处理,这就是我们说的DOM(Document ObjectModel)方式。在iPhone的SDK里包含了一个libxml2的框架(Framework)就能进行DOM解析方式。Google的GDataXML也是基于libxml2的,因此在使用GDataXML.. 阅读全文
posted @ 2012-02-08 17:10 pengyingh 阅读(5700) 评论(2) 推荐(0)
摘要: 在代码中调用如下代码:NSURL*url=[NSURL URLWithString:@"prefs:root=WIFI"];[[UIApplication sharedApplication] openURL:url];即可跳转到设置页面的对应项。[font=]About — prefs:root=General&path=AboutAccessibility — prefs:root=General&path=ACCESSIBILITYAirplane Mode On — prefs:root=AIRPLANE_MODEAuto-Lock — prefs: 阅读全文
posted @ 2012-02-08 17:07 pengyingh 阅读(2620) 评论(0) 推荐(0)
摘要: 在app store中的很多应用程序非常的笨重,他们有好的界面,但操作性很差,比如说当程序从网上或本地载入数据的时候,界面被冻结了,用户只能等程序完全载入数据之后才能进行操作。当打开一个应用程序时,iphone会产生一个包含main方法的线程,所用程序中的界面都是运行在这个线程之中的(table views, tab bars, alerts…),有时候我们会用数据填充这些view,现在问题是如何有效的载入数据,并且用户还能自如的操作程序。方法是启动新的线程,专门用于数据的下载,而主线程不会因为下载数据被阻塞。不管使用任何编程语言,在实现多线程时都是一件很麻烦的事情。更糟糕的是,一旦出错,这种 阅读全文
posted @ 2012-02-08 17:00 pengyingh 阅读(178) 评论(0) 推荐(0)
摘要: 对于iphone开发人员来说,内存管理是极为重要的技巧,哪怕程序的功能再强大,设计再漂亮,如果内存控制不好,也难逃程序莫名退出的噩运,这与网页开发是完全不同的。内存控制里面有很多门道,在这里分析一下 viewDidUnload 和 dealloc 的区别,关于这两者的区别的文章很多,但是大都是摘抄和翻译官方文档,有的也只是简单的说两句,并没有详细说出两者具体的区别。在了解两者之间的区别,首先要知道view的生命周期,google 里面有很多文章,可以先去搜一下,这里就不详解了。顾名思义 viewDidUnload就是当 view 被卸载以后执行的语句,它与 viewDidLoad 是相互呼应. 阅读全文
posted @ 2012-02-08 16:52 pengyingh 阅读(2524) 评论(0) 推荐(0)
摘要: 1. 相关的类主导解析的类:@interfaceNSXMLParser: NSObject {}- (id)initWithContentsOfURL:(NSURL *)url; // initializes the parser with the specified URL.- (id)initWithData:(NSData *)data; // create the parser from data- (id)initWithStream:(NSInputStream *)stream NS_AVAILABLE(10_7, 5_0); //create a parser that inc 阅读全文
posted @ 2012-02-08 15:12 pengyingh 阅读(1942) 评论(0) 推荐(1)
摘要: xml,json都有大量的库来解析,我们如何解析html呢?TFHpple是一个小型的封装,可以用来解析html,它是对libxml的封装,语法是xpath。今天我看到一个直接用libxml来解析html,参看:http://www.cocoanetics.com/2011/09/taming-html-parsing-with-libxml-1/#comment-3090 那张图画得一目了然,很值得收藏。这个文章中的源码不能遍历所有的html,我做了一点修改可以将html遍历打印出来// NSData data contains the document data// encoding is 阅读全文
posted @ 2012-02-08 14:48 pengyingh 阅读(5522) 评论(0) 推荐(0)
摘要: 1、概述插入MapView,设置Delegate(一般为Controller),Annotations记录兴趣位置点(AnnotationView用来显示兴趣位置点),annotation是可选的,选中的annotation会显示callout,用来显示信息。2、设置地图显示类型:mapView.mapType = MKMapTypeStandard;mapView.mapType = MKMapTypeSatellite;mapView.mapType = MKMapTypeHybrid;3、显示用户位置设置为可以显示用户位置:mapView.showsUserLocation = YES; 阅读全文
posted @ 2012-02-08 12:32 pengyingh 阅读(236) 评论(0) 推荐(0)
摘要: 转:http://hi.baidu.com/likejava/blog/item/ef8f43d013c6378fa1ec9c0b.htmlXPath使用路径表达式去确定XML文档中的节点。我们将利用下面的XML文档描述XPath语法 1 xml version="1.0" encoding="GB2312"?> 2 3 <order> 4 <item catalog="parts"> 5 <itemNumber>C2688-67037itemNumber> 6 <descript 阅读全文
posted @ 2012-02-08 12:03 pengyingh 阅读(1131) 评论(0) 推荐(0)
摘要: 一开始学的时候用NSXMLParser解析xml,后来网上论坛各种大大说解析慢不好,所以我就换libxml解析,但是在解析豆瓣的时候遇到问题,怎么用Xpath就解析不出来,后来一度放弃,想换成ns的,但是我觉得有个人王谢写的那个libxml解析库的函数实在太好用了,各种查资料我发现了,原来是xmlns!!!!!,它惹得祸,于是我就字符串替换了xmlns为noNSxml,然后在吧字符串编码为NSData,终于解析过了,这里附上部分核心代码和过程,谨记谨记!!不光解决了这个问题,还学会了string转换为data的过程。一下是豆瓣个人信息api返回的xml格式,例子,供参考:http://api. 阅读全文
posted @ 2012-02-08 11:58 pengyingh 阅读(1073) 评论(0) 推荐(0)
摘要: 深度解析iPhone中项目单元测试是本文要介绍的内容,在Xcode的iPhoneSDK 3.0之后,已经内置了单元测试的功能,开发者可以借助单元测试写出更健壮更正确的代码。文章使用的SDK版本是3.2.3。Xcode提供了两种单元测试方式,分别是逻辑测试与应用测试,逻辑测试用于检验那些独立无环境限制的函数,正是如此,逻辑测试无需启动模拟器或真机,直接在build阶段就完成了。应用测试用于检测你的iPhone应用程序,可以测试包括界面操作等各方面行为。逻辑测试建立逻辑测试步骤:在iPhone项目里添加一个新target,并选择iPhone OS-Cocoa Touch-Unit Test Bun 阅读全文
posted @ 2012-02-08 11:51 pengyingh 阅读(1051) 评论(0) 推荐(0)
摘要: iOS开发之将XML转换成树是本文要介绍的内容,开发中由于服务端与客户端是两种不同的平台,而且服务端又是老系统,不具备很好的面向对象的性质,所以导致客户端与服务端只好通过一些制定好的xml进行通信。在iOS中对XML的解析不像donet这么方便。当然也存在一些很方便的开源类库去调用,但是有些开源的类库显得很笨重。本文章将封装一个简单操作XML转换成树的类方便自己操作:首先通过NSXMLParser从服务端获取XML,它可以一边下载,一边解析,然后转换成树形结构,最后我们可以从树形结构中去取值。使用NSXMLParser解析XML:NSXMLParser中主要有三个委托方法来解析XML:1、pa 阅读全文
posted @ 2012-02-08 11:34 pengyingh 阅读(1848) 评论(1) 推荐(0)
摘要: 就xml解析来讲,目前用过的最简洁,速度最快的当属tbxml,是基于C框架的所以直接拿在iPhone上用了。先说下用法,把tbxml的4个文件拖入class,然后为工程添加libz.dylib框架即可。废话就不说了,直接看代码,如下:定义了两个方法(其中一个带着递归子方法),分别处理已知结构和未知结构的xml。//调用- (void)viewDidLoad {tbXml = [TBXML tbxmlWithXMLFile:@"books.xml"];TBXML *tbXml2 = [TBXML tbxmlWithXMLString:@"<root>&l 阅读全文
posted @ 2012-02-08 11:27 pengyingh 阅读(2128) 评论(0) 推荐(0)
摘要: 使用Cocoa保存XML格式记录文件是本文要介绍的内容,在Cocoa中保存XML的属性列表文件(plist)是很容易的事情。NSArray,NSDictionary, NSString, 或者 NSData都可以保存为XML格式的plist文件。如果NSArray或者NSDictionary中还包含其他可以保存为属性列表的对象,它们可以一起存储在plist文件中。下面是保存的方法:@interfaceClientDisplayMgr{ … IBOutletidm_clientName;//outletstotextboxesinthepreferences IBOutletidm_server 阅读全文
posted @ 2012-02-08 11:20 pengyingh 阅读(470) 评论(0) 推荐(0)
摘要: iPhone实现XML的POST传递并接收数据是本文要介绍的内容,文章是基于代码实现,在iphone开发中,经常会遇到和服务器端交互数据,下面代码是向服务器端传递一个xml数据流,服务器端接受数据并返回一个xml数据类型。iphone传递数据的代码: 1 -(void) postxml 2 { 3 //prepar request 4 NSString *urlString = [NSString stringWithFormat:@"path"]; 5 NSMutableURLRequest *request = [[[NSMutableURL... 阅读全文
posted @ 2012-02-08 10:55 pengyingh 阅读(4821) 评论(0) 推荐(0)
摘要: 解析不是utf-8的xml文件(尤其是中文网站的rss文件):如果url中有中文:1 const char *str = [searchURL UTF8String]; 2 NSString *url = [NSString stringWithUTF8String:str]; 3 NSURL *url =[NSURL URLWithString:[url stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]]; 4 NSURLRequest *urlRequest = [NSURLRequest requestWi. 阅读全文
posted @ 2012-02-08 10:43 pengyingh 阅读(755) 评论(0) 推荐(0)
摘要: 最受欢迎的XML分析器简介:iPhone最流行的XML解析器,以及每个一简要介绍: • NSXMLParser是一个SAX解析器SDK中包含的iPhone默认的。这是写在Objective - C和使用非常简单,但也许没有那么容易,因为DOM模型。 • libxml2的是一个开放源码库,包括iPhone SDK的默认情况下使用。这是一个基于C的API,所以使用起来可能不如NSXML方便。该库同时支持DOM和SAX处理。该处理器的libxml2的SAX特别的酷,因为它有一个能够解析它的独特功能正在读取数据。例如,你可以从网络上阅读大量的XML文档并显示数据,您正在阅读它给... 阅读全文
posted @ 2012-02-08 08:54 pengyingh 阅读(2686) 评论(0) 推荐(1)

导航