1、progress工具类
- (void)connectionMessageConnectingInfo:(NSString *)message ;
- (void)connectionMessageConnecting;
- (void)connectionMessageSuccess:(NSString *)message;
- (void)connectionMessageError:(NSString *)message;
- (void)connectionDismiss;
二次封装第三方库SVProgressHUD。
2、对第三方库的二次封装是必须的,比如AFNetworking,可以封装唯一的发送入口,
+ (void)sendWithParameters:(NSDictionary*)parameters
UrlStr:(NSString*)url
success:(RequestSuccessBlock)success
failed:(RequestFailedBlock)failed;
//检查网络连接状况
+ (BOOL)checkNetReachablityOK;
//开始监测网络连接
+ (void)StartNetReachablityListen;
在UIImageView+AFNetworking中,UIimageview的类别方法- (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholderImage;可以作为根据Url获取某图像的方法。
3、STDbKit
对于小型数据很方便,声明一个继承于STDbObject的类对象user,
写入到数据库直接执行方法[user insertToDb];
从数据库读取,NSArray *users = [User dbObjectsWhere:@"_id=11" orderby:nil];
更新到数据库,[user updateToDb];
从数据库删除,[user removeFromDb];
4、URL格式化调用。
#define HTTPTEST_HOT(uID, lat, lon) [NSString stringWithFormat:@"%@seven_index.html?uid=%@&lat=%f&lon=%f#/seven/hot",HTTPTEST_HOST ,uID, lat, lon] //热门帖子列表
NSURLRequest *request_hot = [NSURLRequest requestWithURL:[NSURL URLWithString:HTTPTEST_HOT(uID, DB.lat, DB.lon)]];
5、webview js交互。
这方面的知识网上很多,这里要提的是其中一个重载数据的方法。stringByEvaluatingJavaScriptFromString @“reload_postPortal();”,用reload的话能看出来是整个页面重新加载数据,用js的方法刷新,给人的感觉是哪里变了,哪里刷新,没有整体重载的感觉
JS与iOS之间的通信,主要运用两个方法:(PhoneGap框架也是基于此原理)
1、UIWebView的 stringByEvaluatingJavaScriptFromString方法
2、UIWebViewDelegate的
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType方法
//获取到目标页面和传递参数
NSString *targatPage = [[DB checkTargatAndParamsWithURL:request.URL] firstObject];
NSString *params = [[DB checkTargatAndParamsWithURL:request.URL] lastObject];
//继承自CDVViewController的子类根据参数初始化
DetailInfoViewController *userInfoViewController = [[DetailInfoViewController alloc] initTargatPage:targatPage WithParam:params];
//根据传递进来的(self)controller进行页面切换
[viewController.navigationController pushViewController:userInfoViewController animated:YES];
}