美文网首页
NSArray+YYAdd的学习

NSArray+YYAdd的学习

作者: _阿南_ | 来源:发表于2017-10-31 16:42 被阅读38次
    图片来之网络

    数组获取

    + (NSArray *)arrayWithPlistData:(NSData *)plist {
        if (!plist) return nil;
        NSArray *array = [NSPropertyListSerialization propertyListWithData:plist options:NSPropertyListImmutable format:NULL error:NULL];
        if ([array isKindOfClass:[NSArray class]]) return array;
        return nil;
    }
    

    将NSData转化为NSArray。 NSArray没有提供将NSData转化为数组的方法,只是提供了+ (nullable NSArray<ObjectType> *)arrayWithContentsOfFile:(NSString *)path;根据文件来获取数组。

    NSPropertyListSerialization

    提供了将NSData转化为id(包含NSArray和NSDictionary):

    + (nullable id)propertyListWithData:(NSData *)data options:(NSPropertyListReadOptions)opt format:(nullable NSPropertyListFormat *)format error:(out NSError **)error API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0));
    

    也提供了id(包含NSArray和NSDictionary)转化为NSData:

    + (nullable NSData *)dataWithPropertyList:(id)plist format:(NSPropertyListFormat)format options:(NSPropertyListWriteOptions)opt error:(out NSError **)error API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0));
    

    之前如果需要将NSDictionary或NSArray转化为NSData,那么会使用

    • NSJSONSerialization JSON解析
    • - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;
    • NSKeyedArchiver 归档
      的方法来转化。现在多了一种使用NSPropertyListSerialization的方法。并且NSJSONSerialization转化的后的NSData一定需要NSJSONSerialization来解析。

    随机获取数组中的元素

    - (id)randomObject {
        if (self.count) {
            return self[arc4random_uniform((u_int32_t)self.count)];
        }
        return nil;
    }
    

    arc4random_uniform指定范围获取随机值。

    // END iOS提供了很多种好的方法,但是好多没有直接使用,而是自己再实现一遍,那么!_!。

    相关文章

      网友评论

          本文标题:NSArray+YYAdd的学习

          本文链接:https://www.haomeiwen.com/subject/nssbpxtx.html