iOS错误集锦

来源:互联网 发布:php微信提现 编辑:程序博客网 时间:2024/05/20 23:38

如何在AppDelegate中使用Storyboard

UIStoryboard * storyboard = [UIStoryboardstoryboardWithName:@"Main"bundle:nil];

利用这行代码可以在AppDelegate中操作Storyboard中的VC


对于Cell重用覆盖的问题

if (cell == nil) {

            cell = [[DetailCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:@"DetailCell"];

        }else {

            while ([cell.contentView.subviewslastObject] !=nil) {

                [[cell.contentView.subviewslastObject]removeFromSuperview];

            }

        }

当数据量小的时候,解决覆盖的方法  直接alloc Cell ,没有使用系统的重用技术(不提倡)

DetailCell * detailCell = [[DetailCellalloc]initWithStyle:UITableViewCellStyleDefaultreuseIdentifier:@"Detail Cell"];


正则表达式

用于检测字符出现的规律

指定搜索的字符  

@"[0-9]" 0到9之间的数字

@"[a-z]" a到z之间的字符

@"[a-z]{3}" 指定长度 

指定数字、字母

\d 数字

\w 数字 或 字符  下划线

邮箱正则表达式: 不可出现空格

@"[0-9a-zA-Z_]*@[0-9a-zA-Z_]*.[0-9a-zA-Z_]*"

指定长度
{m} 必须是m长
{n,m} 长度是n 到m

* 0次到多次
+ 1次到多次
? 0次到1次

针对模式整体进行数量限制
(.\\S+)+
.你好.你好
(http|https)

网址:@"http://[0-9a-zA-Z]+(.[0-9a-zA-Z])+(.[0-9a-zA-Z])

</pre><pre name="code" class="objc">NSString * str = @"@北京天气预报 @今天上午沙@发上阿凡达啊阿凡达";        NSString * regExpStr = @"@\\S*";        NSRegularExpression * regExp = [NSRegularExpression regularExpressionWithPattern:regExpStr options:0 error:nil];        NSArray * array = [regExp matchesInString:str options:0 range:NSMakeRange(0, str.length)];        for (NSTextCheckingResult * result in array) {            NSString * found = [str substringWithRange:result.range];            NSLog(@"%@",found);        }
//NSString * str = @"#红米#@今天上午沙@发上阿凡达啊阿凡达";        //NSString * regExpStr = @"#\\S*";


ASIHTTPRequest功能很强大,主要特色如下:


-通过简单的接口,即可完成向服务端提交数据和从服务端获取数据的工作

-下载的数据,可存储到内存中或直接存储到磁盘中

-能上传本地文件到服务端

-可以方便的访问和操作请求和返回的Http头信息

-可以获取到上传或下载的进度信息,为应用程序提供更好的体验

-支持上传或下载队列,并且可获取队列的进度信息

-支持基本、摘要和NTLM身份认证,在同一会话中授权凭证会自动维持,并且可以存储在KeychainMaciOS操作系统的密码管理系统)中

-支持Cookie

-当应用(iOS4+)在后台运行时,请求可以继续运行

-支持GZIP压缩数据

-内置的ASIDownloadCache类,可以缓存请求返回的数据,这样即使没有网络也可以返回已经缓存的数据结果

- ASIWebPageRequest –可以下载完整的网页,包括包含的网页、样式表、脚本等资源文件,并显示在UIWebView /WebView中。任意大小的页面都可以无限期缓存,这样即使没有网络也可以离线浏览

-支持客户端证书

-支持通过代理发起Http请求

-支持带宽限制。在iOS平台,可以根据当前网络情况来自动决定是否限制带宽,例如当使用WWAN(GPRS/Edge/3G)网络时限制,而当使用WIFI时不做任何限制

-支持断点续传

-支持同步和异步请求


使用:

1.添加到项目中

2.添加类库

CFNetwork.framework,SystemConfiguration.framework, 

MobileCoreServices.framework,CoreGraphics.framework和libz.1.2.3.dylib

3.#import “ASIHTTPRequest.h”

// 创建一个同步请求// 这是ASIHTTPRequest最简单的一种使用模式,发送startSynchronous消息后即开始在同一线程中执行HTTP请求,线程将一直等待直到请求结束(请求成功或者失败) // 。通过检查error属性可以判断请求是否成功或者有错误发生。// 要获取返回的文本信息,调用responseString方法。如果下载的是二进制文件,例如图片、MP3,则调用responseData方法,可以得到一个NSData对象。
- (IBAction)grabURL:(id)sender{<span style="white-space:pre"></span>NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];<span style="white-space:pre"></span>ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];<span style="white-space:pre"></span>[request startSynchronous];<span style="white-space:pre"></span>NSError *error = [request error];<span style="white-space:pre"></span>if (!error) {<span style="white-space:pre"></span>NSString *response = [request responseString];<span style="white-space:pre"></span>}}
//一般情况下,应该优先使用异步请求代替同步请求,当在主线程中使用ASIHTTPRequest同步请求,应用程序的界面会锁定,无法进行任何操作,直到请求完成。//创建一个异步请求//上例中的同步请求,如果换成异步方式来调用,请求是在后台线程中运行,当请求执行完后再通知调用的线程。这样不会导致主线程进行网络请求时,界面被锁定等情况。
- (IBAction)grabURLInBackground:(id)sender{<span style="white-space:pre"></span>NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];<span style="white-space:pre"></span>ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];<span style="white-space:pre"></span>[request setDelegate:self];<span style="white-space:pre"></span>[request startAsynchronous];}
- (void)requestFinished:(ASIHTTPRequest *)request{// 当以文本形式读取返回内容时用这个方法<span style="white-space:pre"></span>NSString *responseString = [request responseString];// 当以二进制形式读取返回内容时用这个方法<span style="white-space:pre"></span>NSData *responseData = [request responseData];}
- (void)requestFailed:(ASIHTTPRequest *)request{<span style="white-space:pre"></span>NSError *error = [request error];}
动态获取 navigatorBar的高度,如果有 length就不为零,否则为零。<p style="margin-top: 0px; margin-bottom: 0px; font-size: 15px; font-family: Menlo; color: rgb(52, 149, 175);"><span style="color: #0433ff">self</span><span style="color: #000000">.</span>navigationController<span style="color: #000000">.</span>topLayoutGuide<span style="color: #000000">.</span>length</p>

详细 how to use


0 0
原创粉丝点击