From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001 From: 单军华 Date: Wed, 11 Jul 2018 10:47:42 +0800 Subject: [PATCH] 首次上传 --- screendisplay/Pods/YYCategories/YYCategories/Foundation/NSArray+YYAdd.m | 172 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 172 insertions(+), 0 deletions(-) diff --git a/screendisplay/Pods/YYCategories/YYCategories/Foundation/NSArray+YYAdd.m b/screendisplay/Pods/YYCategories/YYCategories/Foundation/NSArray+YYAdd.m new file mode 100755 index 0000000..fab17e5 --- /dev/null +++ b/screendisplay/Pods/YYCategories/YYCategories/Foundation/NSArray+YYAdd.m @@ -0,0 +1,172 @@ +// +// NSArray+YYAdd.m +// YYCategories <https://github.com/ibireme/YYCategories> +// +// Created by ibireme on 13/4/4. +// Copyright (c) 2015 ibireme. +// +// This source code is licensed under the MIT-style license found in the +// LICENSE file in the root directory of this source tree. +// + +#import "NSArray+YYAdd.h" +#import "YYCategoriesMacro.h" +#import "NSData+YYAdd.h" + +YYSYNTH_DUMMY_CLASS(NSArray_YYAdd) + + +@implementation NSArray (YYAdd) + ++ (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; +} + ++ (NSArray *)arrayWithPlistString:(NSString *)plist { + if (!plist) return nil; + NSData* data = [plist dataUsingEncoding:NSUTF8StringEncoding]; + return [self arrayWithPlistData:data]; +} + +- (NSData *)plistData { + return [NSPropertyListSerialization dataWithPropertyList:self format:NSPropertyListBinaryFormat_v1_0 options:kNilOptions error:NULL]; +} + +- (NSString *)plistString { + NSData *xmlData = [NSPropertyListSerialization dataWithPropertyList:self format:NSPropertyListXMLFormat_v1_0 options:kNilOptions error:NULL]; + if (xmlData) return xmlData.utf8String; + return nil; +} + +- (id)randomObject { + if (self.count) { + return self[arc4random_uniform((u_int32_t)self.count)]; + } + return nil; +} + +- (id)objectOrNilAtIndex:(NSUInteger)index { + return index < self.count ? self[index] : nil; +} + +- (NSString *)jsonStringEncoded { + if ([NSJSONSerialization isValidJSONObject:self]) { + NSError *error; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self options:0 error:&error]; + NSString *json = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + return json; + } + return nil; +} + +- (NSString *)jsonPrettyStringEncoded { + if ([NSJSONSerialization isValidJSONObject:self]) { + NSError *error; + NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:&error]; + NSString *json = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + return json; + } + return nil; +} + +@end + + + +@implementation NSMutableArray (YYAdd) + ++ (NSMutableArray *)arrayWithPlistData:(NSData *)plist { + if (!plist) return nil; + NSMutableArray *array = [NSPropertyListSerialization propertyListWithData:plist options:NSPropertyListMutableContainersAndLeaves format:NULL error:NULL]; + if ([array isKindOfClass:[NSMutableArray class]]) return array; + return nil; +} + ++ (NSMutableArray *)arrayWithPlistString:(NSString *)plist { + if (!plist) return nil; + NSData* data = [plist dataUsingEncoding:NSUTF8StringEncoding]; + return [self arrayWithPlistData:data]; +} + +- (void)removeFirstObject { + if (self.count) { + [self removeObjectAtIndex:0]; + } +} + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation" +- (void)removeLastObject { + if (self.count) { + [self removeObjectAtIndex:self.count - 1]; + } +} + +#pragma clang diagnostic pop + + +- (id)popFirstObject { + id obj = nil; + if (self.count) { + obj = self.firstObject; + [self removeFirstObject]; + } + return obj; +} + +- (id)popLastObject { + id obj = nil; + if (self.count) { + obj = self.lastObject; + [self removeLastObject]; + } + return obj; +} + +- (void)appendObject:(id)anObject { + [self addObject:anObject]; +} + +- (void)prependObject:(id)anObject { + [self insertObject:anObject atIndex:0]; +} + +- (void)appendObjects:(NSArray *)objects { + if (!objects) return; + [self addObjectsFromArray:objects]; +} + +- (void)prependObjects:(NSArray *)objects { + if (!objects) return; + NSUInteger i = 0; + for (id obj in objects) { + [self insertObject:obj atIndex:i++]; + } +} + +- (void)insertObjects:(NSArray *)objects atIndex:(NSUInteger)index { + NSUInteger i = index; + for (id obj in objects) { + [self insertObject:obj atIndex:i++]; + } +} + +- (void)reverse { + NSUInteger count = self.count; + int mid = floor(count / 2.0); + for (NSUInteger i = 0; i < mid; i++) { + [self exchangeObjectAtIndex:i withObjectAtIndex:(count - (i + 1))]; + } +} + +- (void)shuffle { + for (NSUInteger i = self.count; i > 1; i--) { + [self exchangeObjectAtIndex:(i - 1) + withObjectAtIndex:arc4random_uniform((u_int32_t)i)]; + } +} + +@end -- Gitblit v1.8.0