镔哥,這篇文章是用自己的工程項目來的,主要是代碼為主,但是會有注釋,讓大家能更好理解,讓大家做工程更多一個選擇,這其實就是自己自定義SQLite,不多說,見代碼例子
MyDAta的.h文件
/*
MyData這一個基本上每個工程都能用到的Demo,他包含了很多內容:
1.iPhone機網絡判斷;
2.iPhone機軟件版本判斷(主要是看是否是大於IOS7);
3.圖片緩存處理;
4.下載或者上傳的GET或POST請求;
5.加密手段;
6.數據解析;
*/
//*****************************************************************************************
/*
宏定義SQL語句:
創建菜單數據存儲表:
*/
#define MAPPINGDATA @"create table if not exists mapping(name text,title text)"//刷圖記錄表1
//******************************
#define SHAREDATA @"create table if not exists sharedata(name text,title text)"//分享記錄表2
//******************************
#define JOBDATA @"create table if not exists job(name text,title text,integral text,taskId text)"//威客記錄表3
//******************************
#define BRUSH @"create table if not exists brush(name text,taskid text,jifen text,url text)"//刷單記錄表4
//********************
#define LEAFLETSDATA @"create table if not exists leaft(name text,taskid text,jifen text,url text)"//傳單記錄5
/*
給表中添加數據:
*/
#define TJSJMAPPINGDATA @"insert into mapping(name,title) values(?,?)"//添加數據於刷圖記錄表1
//********************************
#define TJSJSHAREDATA @"insert into sharedata(name,title) values(?,?)"//添加數據於分享記錄表2
//********************************
#define TJSJJOBDATA @"insert into job(name,title,integral,taskId) values(?,?,?,?)"//添加數據於訂單威客記錄表3
//********************************
#define TJSJBRUSH @"insert into brush(name,taskid,jifen,url) values(?,?,?,?)"//添加數據於刷單記錄表4
#define TJLEAFLETSDATA @"insert into leaft(name,taskid,jifen,keyword,url) values(?,?,?,?,?)"//添加傳單與表中5
/*
讀取表中數據:
*/
#define DQSJMAPPINGDATA @"select *from mapping"//讀取刷圖記錄表1
#define DQSJSHAREDATA @"select *from sharedata"//讀取分享記錄表2
#define DQSJJOBDATA @"select *from job"//讀取訂單威客記錄表3
#define DQSJBRUSH @"select *from brush"//讀取訂單表中刷單記錄表4
#define DQLEAFLETSDATA @"select *from leaft"//讀取傳單表數據5
/*
刪除表中所有數據:
*/
#define SCSJMAPPINGDATA @"delete from mapping"//刪除食物表中數據1
#define SCSJSHAREDATA @"delete from sharedata"//刪除訂單表中數據2
#define SCSJJOBDATA @"delete from job"//刪除訂單表中數據3
#define SCSJBRUSH @"delete from brush"//刪除訂單表中數據4
#define SCSJLEAFLETSDATA @"delete from leaft"//刪除傳單中得數據5
//**********************************************************************************************
#import
#import
@protocol MyDataDelegate
/*
參數:
datas ->返回數據;
ressNum ->下載完成度;0-1;
str ->訪問地址;
*/
@optional
-(void)sendData:(NSMutableData *)datas andProgress:(float)ressNum andFilg:(NSString *)str andIndexPath:(NSIndexPath *)indexPath andError:(BOOL)error;
-(void)sendData:(NSMutableData *)datas andFilg:(NSString *)str andError:(BOOL)error;
-(void)sendData:(NSMutableData *)datas andProgress:(float)ressNum andFilg:(NSString *)str andError:(BOOL)error;
-(void)sendData:(NSMutableData *)datas andFilg:(NSString *)str andIndexPath:(NSIndexPath *)indexPath andError:(BOOL)error;
@end
@interface MyData :NSObject
/***********************************************************************
本工程變量定義:
************************************/
{
NSMutableData *receiveData;//用來記錄數據data
NSString *urlstr;//用來記錄網址
NSTimer *timer;//用來定時,設置緩沖時間
NSURLConnection *connection;//用來控制下載暫停
long long AllLength;//獲取文件總長
}
@property(nonatomic,assign)id
@property(nonatomic,assign)NSIndexPath *indexPath;
/***********************************************************************
本工程固定比用方法定義:
************************************/
/*
判斷系統是否是ios7;
*/
+(BOOL)isIos7;
+(BOOL)isIos6;
/*
圖片緩存處理;
*/
+(NSString *)huoPathString:(NSString *)string;
+(NSString *)picturePath;//獲取圖片存儲地址
+(BOOL)addpicture:(UIImage *)image andAddress:(NSString *)path;//將圖片存入緩存文件夾
+(BOOL)judgeIsImage:(NSString *)path;//判斷圖片是否在文件夾中存在
+(UIImage *)obtainImage:(NSString *)path;//從文件夾中獲取圖片
+(BOOL)RemoveArrPictures;//刪除所有圖片
+(float)folderSizeAtPath;
/*
md5加密;
*/
+(NSString *)md5:(NSString *)str;
/*
下載數據方法;
*/
-(void)downloadGET:(NSString *)urlStr;//開始下載
-(void)stopDownload;//下載暫停
/*
POST請求;
*/
-(void)postUrl:(NSString *)url andString:(NSString *)string;
//-(void)postUrl:(NSString *)url andString:(NSString*)
/*
網絡判斷;
*/
+(BOOL)determineNetworkStatus;
/*
XML和JSON解析;
*/
+(void)jsonFor:(NSMutableArray *)array toIn:(NSData *)data;
+(void)xmlFor:(NSMutableArray *)array toIn:(NSData *)data;
/***********************************************************************
本工程非固定比用方法定義:
************************************/
/*
上傳圖片文件
*/
+(NSString *)postRequestWithURL:(NSString *)url
postParems:(NSMutableDictionary *)postParems
postImage:(UIImage *)image
fileName:(NSString *)name;
//+(BOOL)uploadJPEGImage:(UIImage *)image toUrl:(NSString *)url asFilename:(NSString *)filename postParems:(NSMutableDictionary *)postParems;
/*
數據庫;
*/
//存數據
+(NSString *)filePath;
+(BOOL)cunMappingDataOfName:(NSString *)name andString:(NSString *)title;
+(BOOL)cunShareDataOfName:(NSString *)name andString:(NSString *)title;
+(BOOL)cunJobDateOfName:(NSString *)name andString:(NSString *)title andTTString:(NSString *)text andtaskId:(NSString *)taskId;
+(BOOL)cunBrushName:(NSString *)name andtaskId:(NSString *)taskId andJifen:(NSString *)jifen andUrl:(NSString *)urlStr;
+(BOOL)cunLeafName:(NSString *)name andtaskId:(NSString *)taskId andJifen:(NSString *)jifen andkeyWord:(NSString *)keyWord andUrl:(NSString *)urlStr;
//獲取數據
+(NSMutableArray *)quMappingData;
+(NSMutableArray *)quShareData;
+(NSMutableArray *)quJobData;
+(NSMutableArray *)quBrushData;
+(NSMutableArray *)quLeafData;
//刪除數據
+(BOOL)shanMappingData;
+(BOOL)shanShareData;
+(BOOL)shanJobData;
+(BOOL)shanBrushData;
+(BOOL)shanLeafDat
//==================================.m文件===========================
MyData .m文件
/*
MyData這一個基本上每個工程都能用到的Demo,他包含了很多內容:
1.iPhone機網絡判斷;
2.iPhone機軟件版本判斷(主要是看是否是大於IOS7);
3.圖片緩存處理;
4.下載或者上傳的GET或POST請求;
5.加密手段;
6.數據解析;
*/
#import "MyData.h"
#import
#import "Reachability.h"
#import "JSON.h"
#import "GDataXMLNode.h"
@implementation MyData
static sqlite3 *db=nil;//聲明一個sqlite3數據庫
static NSString *const FORM_FLE_INPUT = @"uploadFile";//聲明一個未上傳數據常量
//版本判斷******************************************************************************
NSUInteger DeviceSystemMajorVersion();
NSUInteger DeviceSystemMajorVersion()
{
static NSUInteger _deviceSystemMajorVersion = -1;
//GCD單列用(得到唯一的版本號)
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_deviceSystemMajorVersion = [[[[[UIDevicecurrentDevice] systemVersion]componentsSeparatedByString:@"."]objectAtIndex:0]intValue];
});
return _deviceSystemMajorVersion;
}
//是否大於等於ios7
+(BOOL)isIos7
{
if ((DeviceSystemMajorVersion() >=7)) {
return YES;
}else{
return NO;
}
}
//是否大於等於ios6
+(BOOL)isIos6
{
if ((DeviceSystemMajorVersion() >=6)) {
return YES;
}else{
return NO;
}
}
//圖片處理*******************************************************************************
+(NSString *)picturePath
{
//保存在沙箱
NSString *path=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES)lastObject];
//沙箱路徑追加文件名
path=[path stringByAppendingPathComponent:@"圖片緩存"];
NSFileManager *fm=[NSFileManagerdefaultManager];//文件管理器(處理文件分配、保存,讀取)
//判讀文件路徑是否存在
if ([fm fileExistsAtPath:path]==NO)
{
//就創建文件路徑
[fm createDirectoryAtPath:pathwithIntermediateDirectories:YESattributes:nilerror:nil];
}
return path;
}
+(NSString *)picturesName:(NSString *)path//利用圖片的url生成圖片的名稱:
{
if ([path hasSuffix:@".bmp"]||[pathhasSuffix:@".jpg"]||[pathhasSuffix:@".tiff"]||[pathhasSuffix:@".gif"]||[path hasSuffix:@".pcx"]||[pathhasSuffix:@".png"]||[pathhasSuffix:@".jpeg"])
{
NSMutableString *str=[NSMutableStringstringWithString:path];
for (int i=path.length-1; i>=0; i--)
{
if ([str characterAtIndex:i]=='/') {
[str deleteCharactersInRange:NSMakeRange(i,1)];
}
}
return str;
}
else
{
NSMutableString *str=[NSMutableStringstringWithString:[path stringByAppendingString:@".png"]];
for (int i=path.length-1; i>=0; i--)
{
if ([str characterAtIndex:i]=='/') {
[str deleteCharactersInRange:NSMakeRange(i,1)];
}
}
return str;
}
}
+(BOOL)addpicture:(UIImage *)image andAddress:(NSString *)path
{
NSFileManager *file=[NSFileManagerdefaultManager];//定義文件
NSString *pp=[MyDatapicturePath];
NSString *lujing=[ppstringByAppendingPathComponent:[MyDatapicturesName:path]];//創建文件路徑
NSData *data=UIImagePNGRepresentation(image);//將圖片轉換為NSData格式
BOOL flay=[filecreateFileAtPath:lujing contents:dataattributes:nil];//創建文件
return flay;
}
+(BOOL)judgeIsImage:(NSString *)path
{
NSString *str=[MyDatapicturesName:path];
NSString *str_1=[MyDatapicturePath];
NSString *string=[str_1stringByAppendingPathComponent:str];
NSFileManager *manager=[NSFileManagerdefaultManager];
if ([manager fileExistsAtPath:string]==YES)
{
return YES;
}
else
{
return NO;
}
}
+(UIImage *)obtainImage:(NSString *)path
{
NSFileManager *file=[NSFileManagerdefaultManager];//定義文件
NSString *pp=[MyDatapicturePath];
NSString *lujing=[ppstringByAppendingPathComponent:[MyDatapicturesName:path]];//創建文件路徑
NSData *data=[file contentsAtPath:lujing];
UIImage *image=[UIImageimageWithData:data];
return image;
}
+(NSString *)huoPathString:(NSString *)string
{
NSString *pp=[MyDatapicturePath];
return [ppstringByAppendingPathComponent:[MyDatapicturesName:string]];//創建文件路徑
}
+(BOOL)RemoveArrPictures
{
NSError *error=nil;
NSString *path=[MyDatapicturePath];
NSFileManager *fileManager=[NSFileManagerdefaultManager];
[fileManager removeItemAtPath:path error:&error];
return YES;
}
//md5加密***************************************************************
+(NSString *)md5:(NSString *)str
{
const char *cStr = [strUTF8String];
unsigned char result[32];
CC_MD5( cStr, strlen(cStr), result );
return [NSStringstringWithFormat:
@"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X",
result[0], result[1], result[2], result[3],
result[4], result[5], result[6], result[7],
result[8], result[9], result[10], result[11],
result[12], result[13], result[14], result[15]
];
}
//下載數據*********************************************************
-(void)downloadGET:(NSString *)urlStr
{
NSURL *url=[NSURLURLWithString:urlStr];
NSURLRequest *request=[NSURLRequestrequestWithURL:url];
connection=[NSURLConnectionconnectionWithRequest:request delegate:self];
// timer=[NSTimer scheduledTimerWithTimeInterval:40.0 target:self selector:@selector(TerminationOfTheThread:) userInfo:nil repeats:NO];
}
-(void)stopDownload
{
[connection cancel];//取消下載
}
-(void)TerminationOfTheThread:(NSTimer *)timer1
{
if ([self.delegaterespondsToSelector:@selector(sendData:andProgress:andFilg:andIndexPath:andError:)]) {
[self.delegatesendData:nilandProgress:0andFilg:@"訪問超時"andIndexPath:nilandError:YES];
}
if ([self.delegaterespondsToSelector:@selector(sendData:andProgress:andFilg:andError:)]) {
[self.delegatesendData:nilandProgress:0andFilg:@"訪問超時"andError:YES];
}
if ([self.delegaterespondsToSelector:@selector(sendData:andFilg:andIndexPath:andError:)]) {
[self.delegatesendData:nilandFilg:@"訪問超時"andIndexPath:self.indexPathandError:YES];
}
if ([self.delegaterespondsToSelector:@selector(sendData:andFilg:andError:)]) {
[self.delegatesendData:nilandFilg:@"訪問超時"andError:YES];
}
[connection cancel];//停止下載
}
-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{//將要下載時執行
receiveData=[[NSMutableDataalloc]initWithCapacity:0];
AllLength=[responseexpectedContentLength];
urlstr=[[response URL]absoluteString];
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{//正在下載時執行
[receiveData appendData:data];
long long currentDataLength=[receiveDatalength];
float proportion=(float)currentDataLength/(float)AllLength;
if ([self.delegaterespondsToSelector:@selector(sendData:andProgress:andFilg:andIndexPath:andError:)]) {
[self.delegatesendData:receiveDataandProgress:proportion andFilg:urlstrandIndexPath:self.indexPathandError:NO];
}
if ([self.delegaterespondsToSelector:@selector(sendData:andProgress:andFilg:andError:)]) {
[self.delegatesendData:receiveDataandProgress:proportion andFilg:urlstrandError:NO];
}
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{//下載完成時執行
NSLog(@"3333333333333333");
if ([self.delegaterespondsToSelector:@selector(sendData:andProgress:andFilg:andIndexPath:andError:)]) {
[self.delegatesendData:receiveDataandProgress:1andFilg:urlstrandIndexPath:nilandError:NO];
}
if ([self.delegaterespondsToSelector:@selector(sendData:andProgress:andFilg:andError:)]) {
[self.delegatesendData:receiveDataandProgress:1andFilg:urlstrandError:NO];
}
if ([self.delegaterespondsToSelector:@selector(sendData:andFilg:andIndexPath:andError:)]) {
[self.delegatesendData:receiveDataandFilg:urlstrandIndexPath:self.indexPathandError:NO];
}
if ([self.delegaterespondsToSelector:@selector(sendData:andFilg:andError:)]) {
[self.delegatesendData:receiveDataandFilg:urlstrandError:NO];
}
}
-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{//錯誤時!!!!!!!!!!!!!
NSLog(@"444444444444444");
if ([self.delegaterespondsToSelector:@selector(sendData:andProgress:andFilg:andIndexPath:andError:)]) {
[self.delegatesendData:nilandProgress:0andFilg:@"訪問超時"andIndexPath:nilandError:YES];
}
if ([self.delegaterespondsToSelector:@selector(sendData:andProgress:andFilg:andError:)]) {
[self.delegatesendData:nilandProgress:0andFilg:@"訪問超時"andError:YES];
}
if ([self.delegaterespondsToSelector:@selector(sendData:andFilg:andIndexPath:andError:)]) {
[self.delegatesendData:nilandFilg:@"訪問超時"andIndexPath:self.indexPathandError:YES];
}
if ([self.delegaterespondsToSelector:@selector(sendData:andFilg:andError:)]) {
[self.delegatesendData:nilandFilg:@"訪問超時"andError:YES];
}
}
//Post
//網絡判斷*******************************************************************************
+(BOOL)determineNetworkStatus
{
BOOL flay;
Reachability *r=[ReachabilityreachabilityForInternetConnection];
switch ([rcurrentReachabilityStatus]) {
caseNotReachable:
flay=NO;
break;
caseReachableViaWiFi:
flay=YES;
break;
caseReachableViaWWAN:
flay=YES;
break;
default:
break;
}
if (!flay) {
UIAlertView *alert=[[UIAlertViewalloc]initWithTitle:@"提示"message:@"沒有檢測到網絡"delegate:selfcancelButtonTitle:@"知道了~"otherButtonTitles:nil];
[alert show];
}
return flay;
}
//POST請求****************************************************************************
-(void)postUrl:(NSString *)url andString:(NSString *)string
{
// NSLog(@"4444444444444");
NSMutableData *postData=[[NSMutableDataalloc]init];
[postData appendData:[stringdataUsingEncoding:NSUTF8StringEncoding]];
NSMutableURLRequest *request = [NSMutableURLRequestrequestWithURL:[NSURLURLWithString:url] cachePolicy:NSURLRequestReloadIgnoringCacheDatatimeoutInterval:20.0];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];
connection=[NSURLConnectionconnectionWithRequest:request delegate:self];
NSLog(@"========%@",request);
// timer=[NSTimer scheduledTimerWithTimeInterval:20.0 target:self selector:@selector(TerminationOfTheThread:) userInfo:nil repeats:NO];
}
//JSON和XML解析***********************************************************************
+(void)jsonFor:(NSMutableArray *)array toIn:(NSData *)data
{
[array removeAllObjects];
//方法一:(系統提供方法)
NSArray *arr=[NSJSONSerializationJSONObjectWithData:data options:NSJSONReadingAllowFragmentserror:nil];
[array setArray:arr];
//方法二:(第三方提供方法“JSON.h”)
NSString *str=[[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding];
[array setArray:[str JSONValue]];
}
+(void)xmlFor:(NSMutableArray *)array toIn:(NSData *)data
{
[array removeAllObjects];
NSError *error=nil;
GDataXMLDocument *document=[[GDataXMLDocumentalloc]initWithData:dataoptions:0 error:&error];
GDataXMLElement *element=[document rootElement];
NSArray *eArray=[element elementsForName:@"student"];
for (GDataXMLElement *ein eArray) {
NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];
GDataXMLElement *subE1=[[e elementsForName:@"name"] lastObject];
[dic setObject:[subE1 stringValue] forKey:@"name"];
GDataXMLElement *subE2=[[e elementsForName:@"age"] lastObject];
[dic setObject:[subE2 stringValue] forKey:@"age"];
GDataXMLElement *subE3=[[e elementsForName:@"sex"] lastObject];
[dic setObject:[subE3 stringValue] forKey:@"sex"];
[array addObject:dic];
}
}
//單個文件的大小********************************************************
+(long long)fileSizeAtPath:(NSString*) filePath{
NSFileManager* manager = [NSFileManagerdefaultManager];
if ([manager fileExistsAtPath:filePath]){
return [[managerattributesOfItemAtPath:filePath error:nil]fileSize];
}
return 0;
}
+(float)folderSizeAtPath
{
NSFileManager* manager = [NSFileManagerdefaultManager];
if (![manager fileExistsAtPath:[MyData picturePath]])
{
return 0;
}
NSEnumerator *childFilesEnumerator = [[managersubpathsAtPath:[MyDatapicturePath]] objectEnumerator];
NSString* fileName;
long long folderSize =0;
while ((fileName = [childFilesEnumerator nextObject]) != nil){
NSString* fileAbsolutePath = [[MyDatapicturePath] stringByAppendingPathComponent:fileName];
folderSize += [MyData fileSizeAtPath:fileAbsolutePath];
}
return folderSize/(1024.0*1024.0);
}
//+(BOOL)uploadJPEGImage:(UIImage *)image toUrl:(NSString *)url asFilename:(NSString *)filename postParems:(NSMutableDictionary *)postParems
//{
// NSString *TWITTERFON_FORM_BOUNDARY = @"0xKhTmLbOuNdArY";
//
// //分界線 --AaB03x
// NSString *MPboundary=[[NSString alloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];
// //結束符 AaB03x--
// NSString *endMPboundary=[[NSString alloc]initWithFormat:@"%@--",MPboundary];
//
//
//
//
//
//
//
// //取得圖形數據
// NSData *imageData=UIImageJPEGRepresentation(image, 0.1);
//
// //試用post上傳到服務器上
// NSMutableURLRequest *request=[[NSMutableURLRequest alloc]init];
// [request setURL:[NSURL URLWithString:url]];
// [request setHTTPMethod:@"POST"];
//
// //設置content type
// NSString *boundary=[NSString stringWithFormat:@"----------------------------%ld",random()];
//
// NSString *contentType=[NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
// [request addValue:contentType forHTTPHeaderField:@"Content-Type"];
//
// //設置body
// NSMutableData *body=[NSMutableData data];
//
//
// NSMutableString *bodyb=[[NSMutableString alloc]init];
// //參數的集合的所有key的集合
// NSArray *keys= [postParems allKeys];
//
// //遍歷keys
// for(int i=0;i<[keys count];i++)
// {
// //得到當前key
// NSString *key=[keys objectAtIndex:i];
//
// //添加分界線,換行
// [bodyb appendFormat:@"%@/r/n",MPboundary];
// //添加字段名稱,換2行
// [bodyb appendFormat:@"Content-Disposition: form-data; name=/"%@/"/r/n/r/n",key];
// //添加字段的值
// [bodyb appendFormat:@"%@/r/n",[postParems objectForKey:key]];
//
// NSLog(@"添加字段的值==%@",[postParems objectForKey:key]);
// }
//
// //聲明myRequestData,用來放入http body
//
//
// //將body字符串轉化為UTF8格式的二進制
//
//
//
//
// [body appendData:[[NSString stringWithFormat:@"/r/n--%@/r/n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//
//
// [body appendData:[bodyb dataUsingEncoding:NSUTF8StringEncoding]];
//
//
// [body appendData:[[NSString stringWithFormat:@"Content-Disposition:form-data;name=/"imageFilename/";filename=/"%@/"/r/n",filename] dataUsingEncoding:NSUTF8StringEncoding]];
// [body appendData:[@"Content-Type:application/octet-stream/r/n/r/n" dataUsingEncoding:NSUTF8StringEncoding]];
// [body appendData:imageData];
// [body appendData:[[NSString stringWithFormat:@"/r/n--%@--/r/n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
//
//
//
//
// [request setHTTPBody:body];
//
// //連接到服務器
// NSData *returnData=[NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
//
// NSString *returnString=[[NSString alloc]initWithData:returnData encoding:NSUTF8StringEncoding];
// if ([returnString compare:@"YES"]==NSOrderedSame) {
// return YES;
// }else{
// return NO;
// }
//}
+(NSString *)postRequestWithURL:(NSString *)url
postParems:(NSMutableDictionary *)postParems
postImage:(UIImage *)image
fileName:(NSString *)name
{
NSString *TWITTERFON_FORM_BOUNDARY = @"0xKhTmLbOuNdArY";
//根據url初始化request
NSMutableURLRequest* request = [NSMutableURLRequestrequestWithURL:[NSURLURLWithString:url]
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:10];
//分界線 --AaB03x
NSString *MPboundary=[[NSStringalloc]initWithFormat:@"--%@",TWITTERFON_FORM_BOUNDARY];
//結束符 AaB03x--
NSString *endMPboundary=[[NSStringalloc]initWithFormat:@"%@--",MPboundary];
NSData* data;
if(image){
//判斷圖片是不是png格式的文件
if (UIImagePNGRepresentation(image)) {
//返回為png圖像。
NSLog(@"返回png");
// data = UIImagePNGRepresentation(image);
data = UIImageJPEGRepresentation(image,0.1);
}else {
//返回為JPEG圖像。
NSLog(@"返回jpeg");
data = UIImageJPEGRepresentation(image,0.1);
}
}
NSLog(@"---------%d",data.length);
//http body的字符串
NSMutableString *body=[[NSMutableStringalloc]init];
//參數的集合的所有key的集合
NSArray *keys= [postParems allKeys];
//遍歷keys
for(int i=0;i<[keyscount];i++)
{
//得到當前key
NSString *key=[keys objectAtIndex:i];
//添加分界線,換行
[body appendFormat:@"%@/r/n",MPboundary];
//添加字段名稱,換2行
[body appendFormat:@"Content-Disposition: form-data; name=/"%@/"/r/n/r/n",key];
//添加字段的值
[body appendFormat:@"%@/r/n",[postParemsobjectForKey:key]];
NSLog(@"添加字段的值==%@",[postParemsobjectForKey:key]);
}
if(image){
////添加分界線,換行
[body appendFormat:@"%@/r/n",MPboundary];
//聲明pic字段,文件名為boris.png
[body appendFormat:@"Content-Disposition: form-data; name=/"%@/"; filename=/"%@/"/r/n",FORM_FLE_INPUT,name];
//聲明上傳文件的格式
[body appendFormat:@"Content-Type: image/jpg/r/n/r/n"];
}
//聲明結束符:--AaB03x--
NSString *end=[[NSStringalloc]initWithFormat:@"/r/n%@",endMPboundary];
//聲明myRequestData,用來放入http body
NSMutableData *myRequestData=[NSMutableDatadata];
//將body字符串轉化為UTF8格式的二進制
[myRequestData appendData:[bodydataUsingEncoding:NSUTF8StringEncoding]];
if(image){
//將image的data加入
[myRequestData appendData:data];
}
//加入結束符--AaB03x--
[myRequestData appendData:[enddataUsingEncoding:NSUTF8StringEncoding]];
//設置HTTPHeader中Content-Type的值
NSString *content=[[NSStringalloc]initWithFormat:@"multipart/form-data; boundary=%@",TWITTERFON_FORM_BOUNDARY];
//設置HTTPHeader
[request setValue:contentforHTTPHeaderField:@"Content-Type"];
//設置Content-Length
[request setValue:[NSStringstringWithFormat:@"%d", [myRequestDatalength]] forHTTPHeaderField:@"Content-Length"];
//設置http body
[request setHTTPBody:myRequestData];
//http method
[request setHTTPMethod:@"POST"];
NSHTTPURLResponse *urlResponese = nil;
NSError *error = [[NSErroralloc]init];
NSData* resultData = [NSURLConnectionsendSynchronousRequest:request returningResponse:&urlResponese error:&error];
NSString* result= [[NSStringalloc] initWithData:resultDataencoding:NSUTF8StringEncoding];
NSLog(@"%@",result);
NSLog(@"%d",[urlResponesestatusCode]);
if([urlResponese statusCode] >=200&&[urlResponese statusCode]<300){
NSLog(@"返回結果=====%@",result);
return result;
}
return nil;
}
//數據庫文件的路徑。一般在沙箱的Documents裡邊操作
+(NSString *)filePath
{
NSString *path=[NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES)lastObject];
path=[path stringByAppendingPathComponent:@"shuJu.sqlite"];
return path;
}
//創建表單
+(BOOL)chuangJianTable:(NSString *)string
{
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if(!db)
{
NSLog(@"數據庫打開失敗!");
return NO;
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare_v2(db, [stringUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
if (sqlite3_step(stmt)==SQLITE_DONE)//是程序數據庫運行一步!
{
NSLog(@"創建成功!");
}
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return YES;
}
+(BOOL)cunMappingDataOfName:(NSString *)name andString:(NSString *)title
{
[MyDatachuangJianTable:MAPPINGDATA];
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (!db)
{
NSLog(@"數據庫打開失敗!");
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare(db,[TJSJMAPPINGDATAUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
//給問號賦值1,2,3,表示第幾個問號
if (name.length>0) {
sqlite3_bind_text(stmt, 1, [name UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 1, [@"100" UTF8String], -1, nil);
}
if (title.length>0) {
sqlite3_bind_text(stmt, 2, [title UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 2, [@"你镔哥哥"UTF8String], -1,nil);
}
}
if (sqlite3_step(stmt)==SQLITE_DONE)//是程序數據庫運行一步!
{
NSLog(@"添加成功!");
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return YES;
}
//傳單記錄
+(BOOL)cunLeafName:(NSString *)name andtaskId:(NSString *)taskId andJifen:(NSString *)jifen andkeyWord:(NSString *)keyWord andUrl:(NSString *)urlStr
{
[MyDatachuangJianTable:chuandanURL];
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (!db)
{
NSLog(@"數據庫打開失敗!");
}
sqlite3_stmt *stmt=nil;
//添加數據到表
int result=sqlite3_prepare(db,[TJLEAFLETSDATAUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
//給問號賦值1,2,3,表示第幾個問號
if (name.length>0) {
sqlite3_bind_text(stmt, 1, [name UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 1, [@"100" UTF8String], -1, nil);
}
if (taskId.length>0) {
sqlite3_bind_text(stmt, 2, [taskId UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 2, [@"優點尚"UTF8String], -1,nil);
}
if (jifen.length>0) {
sqlite3_bind_text(stmt, 3, [jifen UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 3, [@"100" UTF8String], -1, nil);
}
if (keyWord.length>0) {
sqlite3_bind_text(stmt, 4, [keyWord UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 4, [@"100" UTF8String], -1, nil);
}
if (urlStr.length>0) {
sqlite3_bind_text(stmt, 5, [urlStr UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 5, [@"100" UTF8String], -1, nil);
}
}
if (sqlite3_step(stmt)==SQLITE_DONE)//是程序數據庫運行一步!(執行完成)
{
NSLog(@"添加成功!");
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return YES;
}
//刷單記錄
+(BOOL)cunBrushName:(NSString *)name andtaskId:(NSString *)taskId andJifen:(NSString *)jifen andUrl:(NSString *)urlStr
{
[MyDatachuangJianTable:BRUSH];
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (!db)
{
NSLog(@"數據庫打開失敗!");
}
sqlite3_stmt *stmt=nil;
//添加數據到表
int result=sqlite3_prepare(db,[TJSJBRUSHUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
//給問號賦值1,2,3,表示第幾個問號
if (name.length>0) {
sqlite3_bind_text(stmt, 1, [name UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 1, [@"100" UTF8String], -1, nil);
}
if (taskId.length>0) {
sqlite3_bind_text(stmt, 2, [taskId UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 2, [@"你镔哥哥"UTF8String], -1,nil);
}
if (jifen.length>0) {
sqlite3_bind_text(stmt, 3, [jifen UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 3, [@"100" UTF8String], -1, nil);
}
if (urlStr.length>0) {
sqlite3_bind_text(stmt, 4, [urlStr UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 4, [@"100" UTF8String], -1, nil);
}
}
if (sqlite3_step(stmt)==SQLITE_DONE)//是程序數據庫運行一步!(執行完成)
{
NSLog(@"添加成功!");
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return YES;
}
//存取分享(名字、標題)
+(BOOL)cunShareDataOfName:(NSString *)name andString:(NSString *)title
{
[MyDatachuangJianTable:SHAREDATA];
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (!db)
{
NSLog(@"數據庫打開失敗!");
}
sqlite3_stmt *stmt=nil;
//添加數據到訂單表
int result=sqlite3_prepare(db,[TJSJSHAREDATAUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)//
{
//給問號賦值1,2,3,表示第幾個問號
if (name.length>0) {
sqlite3_bind_text(stmt, 1, [name UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 1, [@"100" UTF8String], -1, nil);
}
if (title.length>0) {
sqlite3_bind_text(stmt, 2, [title UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 2, [@"你镔哥哥"UTF8String], -1,nil);
}
}
if (sqlite3_step(stmt)==SQLITE_DONE)//是程序數據庫運行一步!(執行完畢)
{
NSLog(@"添加成功!");
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return YES;
}
+(BOOL)cunJobDateOfName:(NSString *)name andString:(NSString *)title andTTString:(NSString *)text andtaskId:(NSString *)taskId
{
[MyDatachuangJianTable:JOBDATA];
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (!db)
{
NSLog(@"數據庫打開失敗!");
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare(db,[TJSJJOBDATAUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
//給問號賦值1,2,3,表示第幾個問號
if (name.length>0) {
sqlite3_bind_text(stmt, 1, [name UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 1, [@"100" UTF8String], -1, nil);
}
if (title.length>0) {
sqlite3_bind_text(stmt, 2, [title UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 2, [@"你镔哥"UTF8String], -1,nil);
}
if (text.length>0) {
sqlite3_bind_text(stmt, 3, [text UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 3, [@"你镔哥"UTF8String], -1,nil);
}
if (taskId.length>0) {
sqlite3_bind_text(stmt, 4, [taskId UTF8String], -1,nil);
}else{
sqlite3_bind_text(stmt, 4, [@"你镔哥"UTF8String], -1,nil);
}
}
if (sqlite3_step(stmt)==SQLITE_DONE)//是程序數據庫運行一步!
{
NSLog(@"添加成功!");
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return YES;
}
+(NSMutableArray *)quMappingData
{
NSMutableArray *arr=[[NSMutableArrayalloc]init];
//打開數據庫
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (db==nil)
{
NSLog(@"數據庫打開失敗");
return arr;
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare_v2(db, [DQSJMAPPINGDATAUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
while (sqlite3_step(stmt)==SQLITE_ROW)
{
char *name=(char *)sqlite3_column_text(stmt,0);
char *title=(char *)sqlite3_column_text(stmt,1);
NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];
[dic setObject:[NSStringstringWithCString:name encoding:NSUTF8StringEncoding]forKey:@"name"];
[dic setObject:[NSStringstringWithCString:title encoding:NSUTF8StringEncoding]forKey:@"title"];
[arr addObject:dic];
}
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return arr;
}
+(NSMutableArray *)quBrushData
{
NSMutableArray *arr=[[NSMutableArrayalloc]init];
//打開數據庫
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (db==nil)
{
NSLog(@"數據庫打開失敗");
return arr;
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare_v2(db, [DQSJBRUSHUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
while (sqlite3_step(stmt)==SQLITE_ROW)
{
char *name=(char *)sqlite3_column_text(stmt,0);
char *taskid=(char *)sqlite3_column_text(stmt,1);
char *jifen=(char *)sqlite3_column_text(stmt,2);
char *url=(char *)sqlite3_column_text(stmt,3);
NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];
[dic setObject:[NSStringstringWithCString:name encoding:NSUTF8StringEncoding]forKey:@"name"];
[dic setObject:[NSStringstringWithCString:taskid encoding:NSUTF8StringEncoding]forKey:@"taskid"];
[dic setObject:[NSStringstringWithCString:jifen encoding:NSUTF8StringEncoding]forKey:@"jifen"];
[dic setObject:[NSStringstringWithCString:url encoding:NSUTF8StringEncoding]forKey:@"url"];
[arr addObject:dic];
}
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return arr;
}
+(NSMutableArray *)quShareData
{
NSMutableArray *arr=[[NSMutableArrayalloc]init];
//打開數據庫
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (db==nil)
{
NSLog(@"數據庫打開失敗");
return arr;
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare_v2(db, [DQSJSHAREDATAUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
while (sqlite3_step(stmt)==SQLITE_ROW)
{
char *name=(char *)sqlite3_column_text(stmt,0);
char *title=(char *)sqlite3_column_text(stmt,1);
NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];
[dic setObject:[NSStringstringWithCString:name encoding:NSUTF8StringEncoding]forKey:@"name"];
[dic setObject:[NSStringstringWithCString:title encoding:NSUTF8StringEncoding]forKey:@"title"];
[arr addObject:dic];
}
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return arr;
}
+(NSMutableArray *)quJobData
{
NSMutableArray *arr=[[NSMutableArrayalloc]init];
//打開數據庫
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (db==nil)
{
NSLog(@"數據庫打開失敗");
return arr;
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare_v2(db, [DQLEAFLETSDATA UTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
while (sqlite3_step(stmt)==SQLITE_ROW)
{
char *name=(char *)sqlite3_column_text(stmt,0);
char *title=(char *)sqlite3_column_text(stmt,1);
char *text=(char *)sqlite3_column_text(stmt,2);
char *taskId=(char *)sqlite3_column_text(stmt,3);
NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];
[dic setObject:[NSStringstringWithCString:name encoding:NSUTF8StringEncoding]forKey:@"name"];
[dic setObject:[NSStringstringWithCString:title encoding:NSUTF8StringEncoding]forKey:@"title"];
[dic setObject:[NSStringstringWithCString:text encoding:NSUTF8StringEncoding]forKey:@"text"];
[dic setObject:[NSStringstringWithCString:taskId encoding:NSUTF8StringEncoding]forKey:@"taskId"];
[arr addObject:dic];
}
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return arr;
}
+(NSMutableArray *)quLeafData
{
NSMutableArray *arr=[[NSMutableArrayalloc]init];
//打開數據庫
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (db==nil)
{
NSLog(@"數據庫打開失敗");
return arr;
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare_v2(db, [DQLEAFLETSDATAUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
//name,taskid,jifen,keyword,url
while (sqlite3_step(stmt)==SQLITE_ROW)
{
char *name=(char *)sqlite3_column_text(stmt,0);
char *taskid=(char *)sqlite3_column_text(stmt,1);
char *jifen=(char *)sqlite3_column_text(stmt,2);
char *url=(char *)sqlite3_column_text(stmt,3);
NSMutableDictionary *dic=[[NSMutableDictionaryalloc]init];
[dic setObject:[NSStringstringWithCString:name encoding:NSUTF8StringEncoding]forKey:@"name"];
[dic setObject:[NSStringstringWithCString:taskid encoding:NSUTF8StringEncoding]forKey:@"taskid"];
[dic setObject:[NSStringstringWithCString:jifen encoding:NSUTF8StringEncoding]forKey:@"jifen"];
[dic setObject:[NSStringstringWithCString:jifen encoding:NSUTF8StringEncoding]forKey:@"keyword"];
[dic setObject:[NSStringstringWithCString:jifen encoding:NSUTF8StringEncoding]forKey:@"taskOptCourse"];
[dic setObject:[NSStringstringWithCString:url encoding:NSUTF8StringEncoding]forKey:@"url"];
[arr addObject:dic];
}
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return arr;
}
+(BOOL)shanMappingData
{
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (!db)
{
NSLog(@"數據庫打開失敗!");
return NO;
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare_v2(db,[SCSJMAPPINGDATAUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
if (sqlite3_step(stmt)==SQLITE_DONE)//是程序數據庫運行一步!
{
NSLog(@"刪除成功!");
}
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return YES;
}
+(BOOL)shanBrushData
{
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (!db)
{
NSLog(@"數據庫打開失敗!");
return NO;
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare_v2(db,[SCSJMAPPINGDATAUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
if (sqlite3_step(stmt)==SQLITE_DONE)//是程序數據庫運行一步!
{
NSLog(@"刪除成功!");
}
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return YES;
}
+(BOOL)shanShareData
{
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (!db)
{
NSLog(@"數據庫打開失敗!");
return NO;
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare_v2(db,[SCSJBRUSHUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
if (sqlite3_step(stmt)==SQLITE_DONE)//是程序數據庫運行一步!
{
NSLog(@"刪除成功!");
}
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return YES;
}
+(BOOL)shanJobData
{
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (!db)
{
NSLog(@"數據庫打開失敗!");
return NO;
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare_v2(db,[SCSJJOBDATAUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
if (sqlite3_step(stmt)==SQLITE_DONE)//是程序數據庫運行一步!
{
NSLog(@"刪除成功!");
}
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return YES;
}
+(BOOL)shanLeafData
{
sqlite3_open([[MyDatafilePath] UTF8String], &db);
if (!db)
{
NSLog(@"數據庫打開失敗!");
return NO;
}
sqlite3_stmt *stmt=nil;
int result=sqlite3_prepare_v2(db,[SCSJLEAFLETSDATAUTF8String], -1, &stmt,nil);
if (result==SQLITE_OK)
{
if (sqlite3_step(stmt)==SQLITE_DONE)//是程序數據庫運行一步!
{
NSLog(@"刪除成功!");
}
}
sqlite3_finalize(stmt);
sqlite3_close(db);
return YES;
}
@end