zoukankan      html  css  js  c++  java
  • ios中NSObject分类(2)

    #import <Foundation/Foundation.h>
    
    
    UIColor * rgb(int r, int g, int b);
    UIColor * rgbA(int r, int g, int b, float a);
    UIColor * rgbweb(int rgbval);
    
    @interface NSObject (Utilty)
    
    // 读文件
    -(NSString*)readApiCacheFileName:(NSString*)fileName;
    
    // 写文件
    -(void)saveApiCacheFileName:(NSString*)fileName textContent:(NSString*)content Append:(BOOL)isAppend;
    
    // 字符串过滤不规则字符
    -(NSString*)filterString:(NSString*)aString filterWith:(NSString*)fStr;
    
    
    /*
     *  检查输入的金额是否符合金额的输入规则
     *
     */
    -(bool)doCheckInputAmount:(NSString *)textFieldtext replacementString:(NSString *)string;
    
    
    @end
    
    @interface NSDictionary (extra)
    
    
    //根据key值的到字典中的object
    - (id)getObjectByKey:(NSString*)key;
    
    //根据key值得到字符串,如为空则返回@“”
    - (id)getStringByKey:(NSString*)key;
    
    //根据key值把字典中的list字典转换成数组
    - (NSMutableArray*)getArrayByString:(NSString*)string;
    
    - (NSArray*)sortedKeysByString:(NSString*)elementName;
    
    
    
    
    @end
    
    
    @interface NSString (chnbs)
    
    -(void)saveApiCacheFileName:(NSString*)fileName;
    
    
    
    @end
    #import "NSObject+Utilty.h"
    
    
    //定义颜色
    UIColor * rgb(int r, int g, int b)
    {
        return [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:1];
    }
    
    
    UIColor * rgbA(int r, int g, int b, float a)
    {
        return [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a];
    }
    
    UIColor * rgbweb(int rgbval)
    {
        return rgb((rgbval>>16)&0xFF,(rgbval>>8)&0xFF,(rgbval>>0)&0xFF);
    }
    
    
    @implementation NSObject (Utilty)
    
    //读取保存文件。
    -(NSString*)readApiCacheFileName:(NSString*)fileName{
        NSString * cacheFolder = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
        cacheFolder = [cacheFolder stringByAppendingPathComponent:@"JiangSu"];
        
        //获取文件路径
        NSString *path = [cacheFolder stringByAppendingPathComponent:fileName];
    
       return [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:NULL];
    }
    
    /*
     *  @fileName   需要保存的文件名字
     */
    -(void)saveApiCacheFileName:(NSString*)fileName textContent:(NSString*)content Append:(BOOL)isAppend{
    
        
        NSString * cacheFolder = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
        cacheFolder = [cacheFolder stringByAppendingPathComponent:@"JiangSu"];
        
        NSFileManager * fmgr = [NSFileManager defaultManager];
    
        if (![fmgr fileExistsAtPath:cacheFolder])
        {
            NSError * error;
            [fmgr createDirectoryAtPath:cacheFolder withIntermediateDirectories:YES attributes:nil error:&error];
        }
        cacheFolder = [cacheFolder stringByAppendingPathComponent:fileName];
        
        
    
            if ([content writeToFile:cacheFolder atomically:YES encoding:NSUTF8StringEncoding error:NULL] == YES) {
                NSLog(@"保存成功");
            }
        
    
        
        
    }
    
    -(NSString*)filterString:(NSString*)aString filterWith:(NSString*)fStr{
        
        aString = [aString stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];
        
        if ([aString rangeOfString:fStr].location != NSNotFound) {
            aString = [aString stringByReplacingOccurrencesOfString:fStr withString:@""];
            [self filterString:aString filterWith:fStr];
        }
        return aString;
    }
    
    /*
     *  检查输入的金额是否符合金额的输入规则
     *
     */
    -(bool)doCheckInputAmount:(NSString *)textFieldtext replacementString:(NSString *)string
    {
        int length_f = [textFieldtext length];
        
        if([string length]>1)
            return FALSE;
        if(![string isEqualToString:@"."]&& [textFieldtext length]){
            if ([textFieldtext length]>=16 && ![string isEqualToString:@""] ) {
                return FALSE;
            }
            
        }
        if( [string isEqualToString:@""] )
            return TRUE;
        // 判断输入字符[是否合格]
        unichar curChar_f = [string characterAtIndex:0];
        if( (curChar_f>='0'&&curChar_f<='9') || (curChar_f=='.') )
        {
            if( curChar_f=='.' )
            {
                if(length_f==0)            //    首字节不能为.
                    return FALSE;
                if( [textFieldtext rangeOfString:@"."].length>0 )    // .不能重复
                    return FALSE;
            }
            if(length_f>0)
            {
                if( [textFieldtext characterAtIndex:0]=='0' )        // 如果首输入为0,第二必须为.
                {
                    if( curChar_f!='.'&& length_f==1 )
                    {
                        return FALSE;
                    }
                }
            }
            
            if( length_f>=3 )
            {
                // 小数点后2位不能在输入
                if( [textFieldtext characterAtIndex:length_f-3]=='.' )
                    return FALSE;
            }
            return TRUE;
        }
        
        return FALSE;
    }
    
    
    
    @end
    
    
    @implementation NSDictionary (extra)
    
    
    //根据key值的到字典中的object
    - (id)getObjectByKey:(NSString*)key {
        NSArray *array = [key componentsSeparatedByString:@"/"];
        NSDictionary *dic = self;
        for (int i=0; i<[array count]-1; i++) {
            dic = [dic objectForKey:[array objectAtIndex:i]];
        }
        return [dic objectForKey:[array objectAtIndex:[array count]-1]];
    }
    
    /*
     根据key值得到字符串,如为空则返回@“”
     */
    - (id)getStringByKey:(NSString*)key {
        NSArray *array = [key componentsSeparatedByString:@"/"];
        NSDictionary *dic = self;
        for (int i=0; i<[array count]-1; i++) {
            dic = [dic objectForKey:[array objectAtIndex:i]];
        }
        NSString *temp = [dic objectForKey:[array objectAtIndex:[array count]-1]];
        if (!temp) {
            temp = @"";
        }
        return temp;
    }
    
    /*
     根据key值把字典中的list字典转换成数组
     使用方法:NSArray *array = [self getArrayByString:@"Data/responseBody/eventList"];
     */
    - (NSMutableArray*)getArrayByString:(NSString*)string  {
        NSDictionary *dic = [self getObjectByKey:string];
        
        NSMutableArray *array = [[NSMutableArray alloc] init];
        if (dic && [dic isKindOfClass:[NSDictionary class]]) {
            NSArray *keys = [dic allSortedKeys];
            for (int i=0; i<[keys count]; i++) {
                NSString *key = [keys objectAtIndex:i];
                [array addObject:[dic objectForKey:key]];
            }
        }
        return [array autorelease];
    }
    
    
    /*
     根据参数返回排序的keys
     */
    - (NSArray*)sortedKeysByString:(NSString*)elementName {
        NSMutableArray *array = [NSMutableArray array];
        for (int i=0; i<[[self allKeys] count]; i++) {
            if (i == 0) {
                [array addObject:[NSString stringWithFormat:@"%@", elementName]];
                continue;
            }
            [array addObject:[NSString stringWithFormat:@"%@%d", elementName, i]];
        }
        return array;
    }
    
    /*
     对key进行排序,替代[dic allKeys],对keys进行排序
     */
    - (NSArray *)allSortedKeys {
        if ([self objectForKey:@"ITEM"]) {
            NSMutableArray *array = [NSMutableArray array];
            [array addObject:@"ITEM"];
            for (int i=1; i<[[self allValues] count]; i++) {
                [array addObject:[NSString stringWithFormat:@"ITEM%d", i]];
            }
            return array;
        }
        else if ([self objectForKey:@"ITEM"]) {
            NSMutableArray *array = [NSMutableArray array];
            [array addObject:@"ITEM"];
            for (int i=1; i<[[self allValues] count]; i++) {
                [array addObject:[NSString stringWithFormat:@"ITEM%d", i]];
            }
            return array;
        }
        return [self allKeys];
    }
    
    
    
    @end
    
    
    @implementation NSString (chnbs)
    
    
    -(void)saveApiCacheFileName:(NSString*)fileName{
        
        NSString * cacheFolder = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
        cacheFolder = [cacheFolder stringByAppendingPathComponent:@"JiangSu"];
        
        NSFileManager * fmgr = [NSFileManager defaultManager];
        if (![fmgr fileExistsAtPath:cacheFolder])
        {
            NSError * error;
            [fmgr createDirectoryAtPath:cacheFolder withIntermediateDirectories:YES attributes:nil error:&error];
        }
        cacheFolder = [cacheFolder stringByAppendingPathComponent:fileName];
        [self writeToFile:cacheFolder atomically:YES encoding:NSUTF8StringEncoding error:NULL];
    }
    
    @end
  • 相关阅读:
    [POJ1176]Party Lamps(DFS,规律)
    [POJ1598]Excuses, Excuses!(模拟)
    [POJ2192]Zipper(DFS,剪枝)
    [POJ2157]Maze(DFS)
    [POJ1950]Dessert(DFS)
    [HIHO1353]满减优惠(状压,枚举)
    [HIHO1177]顺子(暴力,枚举)
    [HIHO1152]Lucky Substrings(暴力,枚举)
    计蒜客 25985.Goldbach-米勒拉宾素数判定(大素数) (2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 B)
    计蒜客 28206.Runway Planning (BAPC 2014 Preliminary ACM-ICPC Asia Training League 暑假第一阶段第一场 F)
  • 原文地址:https://www.cnblogs.com/gcb999/p/3229758.html
Copyright © 2011-2022 走看看