iOS NSData類型


1. NSData 與 NSString
NSData-> NSString
NSString *aString = [[NSString alloc] initWithData:adataencoding:NSUTF8StringEncoding];
NSString->NSData
NSString *aString = @"1234abcd";
NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding]; 

//將data類型的數據,轉成UTF8的數據
+(NSString *)dataToUTF8String:(NSData *)data
{
 NSString *buf = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
 return [buf autorelease];
}

//將string轉換爲指定編碼 
+(NSString *)changeDataToEncodinString:(NSData *)data encodin:(NSStringEncoding )encodin{
    NSString *buf = [[[NSString alloc] initWithData:data encoding:encodin] autorelease];
    return buf;
}

2. NSData 與 UIImage
NSData->UIImage
UIImage *aimage = [UIImage imageWithData: imageData];
 
//例:從本地文件沙盒中取圖片並轉換爲NSData
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *name = [NSString stringWithFormat:@"ceshi.png"];
NSString *finalPath = [path stringByAppendingPathComponent:name];
NSData *imageData = [NSData dataWithContentsOfFile: finalPath];
UIImage *aimage = [UIImage imageWithData: imageData];

3.NSData與NSArray  NSDictionary

+(NSString *)getLocalFilePath:(NSString *) fileName
{
 return [NSString stringWithFormat:@"%@/%@%@", NSHomeDirectory(),@“Documents”,fileName];
}

包括將NSData寫進Documents目錄
從Documents目錄讀取數據
在進行網絡數據通信的時候,經常會遇到NSData類型的數據。在該數據是dictionary結構的情況下,系統沒有提供現成的轉換成NSDictionary的方法,爲此可以通過Category對NSDictionary進行擴展,以支持從NSData到NSDictionary的轉換。聲明和實現如下:
 

+ (NSDictionary *)dictionaryWithContentsOfData:(NSData *)data {     
    CFPropertyListRef list = CFPropertyListCreateFromXMLData(kCFAllocatorDefault, (CFDataRef)data, kCFPropertyListImmutable, NULL);
    if(list == nil) return nil; 
    if ([(id)list isKindOfClass:[NSDictionary class]]) { 
         return [(NSDictionary *)list autorelease]; 
        } 
    else { 
         CFRelease(list); 
         return nil; 
        } 
}


NSDate

//函數作用 :date根據formatter轉換成string
+(NSString*)dateToString:(NSString *)formatter date:(NSDate *)date
{
    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setDateFormat:formatter];
    return[dateFormatter stringFromDate:date];
}

//函數作用 :string類型的時間戳轉換成時間
+(NSString*)dateStringToString:(NSString *)dateStr
{
    if ([dateStr isKindOfClass:[NSNull class]]) {
        return nil;
    }
    else{
        NSInteger time = [dateStr intValue];
        NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];
        NSString *timestr = [NSString stringWithFormat:@"%@",date];
        NSRange rang;
        rang.location = 0;
        rang.length = 10;
        NSString *needtime = [timestr substringWithRange:rang];
        return needtime;
    }
}


//函數作用 :將日期從原格式轉換成需要的格式
+(NSString*)convertDateFormatter:(NSString*)sourceFormatter 
                  targetFormatter:(NSString*)targetFormatter  
                       dateString:(NSString*)dateString
{   
    NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
    [dateFormatter setDateFormat:sourceFormatter];
    NSDate *date = [dateFormatter dateFromString:dateString];
    [dateFormatter setDateFormat:targetFormatter];
    return[dateFormatter stringFromDate:date];
}

//函數作用 :將日期字符串轉換成date
+(NSDate *)stringToDate:(NSString *)formatter dateString:(NSString *)dateString{
 NSDateFormatter *dateFormatter= [[[NSDateFormatter alloc] init] autorelease];
 [dateFormatter setDateFormat:formatter];
 return [dateFormatter dateFromString:dateString];
}


//時間戳轉換成時間
                NSInteger time = [[dic objectForKey:@"press_date"] intValue];
                NSDate *date = [NSDate dateWithTimeIntervalSince1970:time];
                NSString *timestr = [NSString stringWithFormat:@"%@",date];
                NSRange rang;
                rang.location = 0;
                rang.length = 10;
                NSString *needtime = [timestr substringWithRange:rang];

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章