精华内容
下载资源
问答
  • nsdata

    2019-10-09 02:32:46
    NSData NSDate NSString NSArray NSDictionary 相互转换,nsdatansdate // NSData NSDate NSString NSArray NSDictionary json NSString *string = @"hello word"; NSData *data = [s...

    NSData NSDate NSString NSArray NSDictionary 相互转换,nsdatansdate

     

    //    NSData  NSDate NSString NSArray NSDictionary json
        
        
        NSString *string = @"hello word";
        NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
        NSArray *array = [NSArray arrayWithObjects:@"1",@"2",@"3",nil];
        NSString *dateString = @"19891123";
        NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:
                             @"hello", @"word",
                             @"chen", @"lu",
                             @"jin", @"mei",
                             @"cerastes", @"hehe",nil];
    
    //    NSString to NSData
        NSData *string2data = [string dataUsingEncoding:NSUTF8StringEncoding];
        NSLog(@"%@",string2data);
    //    NSData to NSString
        NSString *data2String = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
        NSLog(@"dataString = %@",data2String);
        
    //    NSArray to NSData
        
        NSData *arry2data = [NSKeyedArchiver archivedDataWithRootObject:array];
    //    NSData to NSArray
        NSArray *data2arry = [NSKeyedUnarchiver unarchiveObjectWithData:arry2data];
        NSLog(@"%@  /n %@",arry2data,data2arry);
        
    //    NSString to NSDate
        NSDate *string2date = [self convertDateFromString:dateString withFormattre:@"yyyyMMdd"];
        NSLog(@"date = %@",string2date);
        
    //    NSDate to NSString
        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
        [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
        NSString *date2string = [dateFormatter stringFromDate:[NSDate date]];
        NSLog(@"%@", date2string);
        
    
    //   NSArray to NSString
        
        
        NSString *arry2String = [array componentsJoinedByString:@" "];
        
        NSLog(@"string = %@",arry2String);
        
        
    //    NSString to NSArray
        NSArray *string2Arry = [arry2String componentsSeparatedByString:@" "];
        NSLog(@" %@",string2Arry);
        
    
        
    //    NSDictionary to NSData:
        NSMutableData *dic2data = [[NSMutableData alloc] init];
        NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:dic2data];
        [archiver encodeObject:dic forKey:@"Some Key Value"];
        [archiver finishEncoding];
        NSLog(@"%@",dic2data);
        
    //    NSData to NSDictionary
        NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:dic2data];
        NSDictionary *data2dic = [unarchiver decodeObjectForKey:@"Some Key Value"];
        [unarchiver finishDecoding];
        NSLog(@"%@",data2dic);
        
        
    //    NSDictionary to NSString
        NSString *dic2string=[dic JSONRepresentation]; //这个方法是SBJson类库里的,需要导入SBJson.h
        NSLog(@"%@",dic2string);
        
    //    NSString to NSDictionary
        NSError *error = nil;
        NSDictionary *string2dic = [NSJSONSerialization JSONObjectWithData: [dic2string dataUsingEncoding:NSUTF8StringEncoding]
                                        options: NSJSONReadingMutableContainers
                                          error: &error];
        NSLog(@"%@",string2dic);
    




    Cocoa怎应用设计模式解答

     

    Cocoa经常把自己与众不同的工作机制建立在模式上,它的设计受到诸如语言能力或现有架构这样因素的影响。 本部分包含设计模式:可重用的面向对象软件的元素一书中编目的大多数设计模式的介绍。每个设计模式都有一个总结性的描述,以及该模式的Cocoa实现的讨论。文中列出的都是Cocoa实现的模式,每个模式的讨论都发生在特定的Cocoa环境中。我们推荐您熟悉这些模式,您会发现这些模式在Cocoa软件开发中非常有用。 Cocoa中设计模式的实现有不同的形式。下面部分中描述的一些设计—比如协议和范畴—是Objective-C语言的特性;在另外一些场合中,“模式的实例”被实现为一个类或一组相关的类(比如类簇和单件类);还有一些场合下,模式表现为一个大的框架结构,比如响应者链模式。对于某些基于模式的机制,您几乎可以“免费”使用;而另外一些机制则要求您做一些工作。即使对于Cocoa没有实现的模式,我们也鼓励您在条件许可的情况下自行实现,比如在扩展类的行为时,对象合成(装饰模式)技术通常就比生成子类更好。 有两个设计模式没有在下面的内容中进行讨论,即模型-视图-控制器(MVC)模式和对象建模。MVC是一种复合或聚合模式,就是说它基于几种不同类型的模式。对象建模在四人组的分类目录中没有对应类别,它源自关系数据库领域。然而,MVC和对象建模在Cocoa中可能是最重要和最普遍的设计模式或用语,而且它们在很大程度上是相关的。它们在几个技术的设计中发挥关键的作用,包括绑定、撤消管理、脚本控制、和文档架构。要了解更多有关这些模式的信息,请参见"模型-视图-控制器设计模式"和"对象建模"部分。 本部分包含如下主要内容:抽象工厂模式适配器模式责任链模式命令模式合成模式装饰模式表观模式跌代器模式仲裁者模式备忘录模式观察者模式代理模式单件模式模板方法模式 抽象工厂模式提供一个接口,用于创建与某些对象相关或依赖于某些对象的类家族,而又不需要指定它们的具体类。通过这种模式可以去除客户代码和来自工厂的具体对象细节之间的耦合关系。 类簇类簇是一种把一个公共的抽象超类下的一些私有的具体子类组合在一起的架构。抽象超类负责声明创建私有子类实例的方法,会根据被调用方法的不同分配恰当的具体子类,每个返回的对象都可能属于不同的私有子类。 Cocoa将类簇限制在数据存储可能因环境而变的对象生成上。Foundation框架为NSString、NSData、NSDictionary、NSSet、和NSArray对象定义了类簇。公共超类包括上述的不可变类和与其相互补充的可变类NSMutableString、NSMutableData、NSMutableDictionary、NSMutableSet、和NSMutableArray。 使用和限制 当您希望创建类簇代表的类型的可变或不可变对象时,可以使用类簇中的某个公共类来实现。使用类簇是在简洁性和扩展性之间进行折衷。类簇可以简化类接口,因此使其更易于学习和使用,但是创建类簇抽象类的定制子类则会变得更加困难。进一步阅读: "类簇" 部分提供有关Cocoa类簇的更多信息。 适配器模式将一个类接口转化为客户代码需要的另一个接口。适配器使原本由于兼容性而不能协同工作的类可以工作在一起,消除了客户代码和目标对象的类之间的耦合性。 协议协议是一个编程语言级别(Objective-C)的特性,它使定义适配器模式的实例成为可能(在 Java中的“接口”和“协议”是同义的)。如果您希望一个客户对象和另一个对象进行交流,但由于它们......余下全文>>
     

    NSIndexPath怎保存到NSUserDefaults里

     

    NSIndexPath是无法直接存储到NSUserDefaults中去的,NSUserDefaults中的value只能是NSData, NSString, NSNumber, NSDate, NSArray, or NSDictionary。如果你想保存自定义的类,那么该类必须要实现NSCoding协议,并将该类转换成NSData,才能保持到NSUserDefaults中~

    转载于:https://www.cnblogs.com/adpbky/p/4517189.html

    展开全文
  • NSData

    2019-08-02 00:13:29
    NSData 与 NSStringNSData-> NSStringNSString*aString = [[NSStringalloc]initWithData:adataencoding:NSUTF8StringEncoding];NSString->NSDataNSString*aString =@"1234abcd";NSData*aData = [...

    简介:
    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];

    转载于:https://www.cnblogs.com/I-am-fine/archive/2012/09/25/2701208.html

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,012
精华内容 2,804
关键字:

nsdata