內(nèi)容很簡(jiǎn)單,只是本人不會(huì)寫(xiě)后臺(tái),只能用到野狗API,嘗試著寫(xiě)一個(gè)后臺(tái)接口,這里只做上傳頭像和下載效果,其中用到UIImage和NSData的互轉(zhuǎn),所以寫(xiě)日記記錄下,和大家分享下.
//NSData轉(zhuǎn)換為UIImage
NSData *imageData = [NSData dataWithContentsOfFile: imagePath];
UIImage *image = [UIImage imageWithData: imageData];
//UIImage轉(zhuǎn)換為NSData
NSData *imageData = UIImagePNGRepresentation(aimae);
//下面是實(shí)例代碼
#pragma mark 選擇圖片
//選中圖片進(jìn)入的代理方法
/**
* 選好圖片調(diào)用的代理方法
*
* @param picker 顯示選擇圖片的界面
* @param image 選中的圖片
* @param editingInfo 編輯消息描述
*/
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
[picker dismissViewControllerAnimated:YES completion:nil];//推回彈出的相冊(cè)或照相機(jī)
//獲取圖片
UIImage *imgh=info[UIImagePickerControllerOriginalImage];
userHeadImageView.image=imgh;//設(shè)置頭像
// 在網(wǎng)絡(luò)開(kāi)發(fā)中,上傳文件時(shí)玖喘,是文件不允許被覆蓋,文件重名
// 要解決此問(wèn)題嘲碱,
// 可以在上傳時(shí)使用當(dāng)前的系統(tǒng)時(shí)間作為文件名
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
// 設(shè)置時(shí)間格式
formatter.dateFormat = @"yyyy-MM-dd-HH-mm-ss";
NSString *str = [formatter stringFromDate:[NSDate date]];
//將圖片轉(zhuǎn)為data數(shù)據(jù)
NSData *imageData = UIImageJPEGRepresentation(imgh, 0.5);
//將數(shù)據(jù)轉(zhuǎn)為base64字符串
NSString *datastr = [imageData base64EncodedString];
//向網(wǎng)絡(luò)上傳頭像
[self GetDataStr:str DataStr:datastr];
}
//上傳頭像到服務(wù)器
-(void)GetDataStr:(NSString *)str DataStr:(NSString *)datastr
{
//獲取用戶(hù)信息字典
userData = [UserData GetUserData];
NSString *userName =userData.mDic[@"UserName"];
//創(chuàng)建引用
Wilddog *myRootRef = [[Wilddog alloc]initWithUrl:@"https://--此處為自己申請(qǐng)的野狗API用戶(hù)名--.wilddogio.com/User"];
#pragma mark 向服務(wù)器添加一個(gè)字典(注冊(cè))
//向服務(wù)器創(chuàng)建一個(gè)名為User的字典
Wilddog *usersRef = [myRootRef childByAppendingPath: userName];
//設(shè)置需要更新的數(shù)組名
Wilddog *hopperRef = [usersRef childByAppendingPath: @"UserHeadImage"];
//設(shè)置要更新的內(nèi)容
NSDictionary *nickname = @{
@"ImageName": str,
@"ImageData":datastr,
};
//將內(nèi)容上傳服務(wù)器
[hopperRef updateChildValues: nickname];
}
//最后是加載用戶(hù)頭像 ,以上我沒(méi)做過(guò)多的操作,數(shù)據(jù)是用戶(hù)登錄的時(shí)候存儲(chǔ)的,上傳圖片到服務(wù)器,如果用戶(hù)沒(méi)有頭像字典則自動(dòng)添加一個(gè)字典,我這里只是展示數(shù)據(jù),此方法在viewDidLoad中調(diào)用,
-(void)LoadData
{
userData = [UserData GetUserData];
NSDictionary *dic = [[NSDictionary alloc]init];
dic = userData.mDic[@"UserHeadImage"];
//獲取NSData數(shù)據(jù)
NSData *dataStr = [NSData dataFromBase64String:dic[@"ImageData"]];
UIImage *image = [UIImage imageWithData:dataStr];
userHeadImageView.image = image;
}
//剛用簡(jiǎn)書(shū),還沒(méi)細(xì)細(xì)研究,字體顏色不好看勿怪