如何在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身份认证,在同一会话中授权凭证会自动维持,并且可以存储在Keychain(Mac和iOS操作系统的密码管理系统)中
-支持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