IOS 开发之小技点汇总_Cookie,缓存,字符串

来源:互联网 发布:对网店美工的认识 编辑:程序博客网 时间:2024/04/28 00:57

1、JS 调用IOS相机的时候是英文状态
解决方法:把plist文件的Localization native development region, en改成China 。

2、在字符串中截取两个字符串之间的字符串

NSRange start = [String rangeOfString:@">{"];NSRange end = [String rangeOfString:@"}<"];NSString *sub = [String substringWithRange:NSMakeRange(start.location+1, end.location-start.location)];

3、清除cookie
(1)清除所有的cookie 方法
OC:

NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];      if (url) {          NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:url];          for (int i = 0; i < [cookies count]; i++) {              NSHTTPCookie *cookie = (NSHTTPCookie *)[cookies objectAtIndex:i];              [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];          }  

(2)清除指定的cookie

 let cookArray = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookiesForURL(NSURL.init(string: URL)!);        for cookie:NSHTTPCookie in cookArray! {            if cookie.name == "ULSID" {NSHTTPCookieStorage.sharedHTTPCookieStorage().deleteCookie(cookie);            }        }

(3)清除所有URL缓存

[[NSURLCache sharedURLCache] removeAllCachedResponses];

4、清除app缓存
Swift:
(1)计算缓存大小

var cacheSize: String{        get{            let basePath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true).first            let fileManager = NSFileManager.defaultManager()            func caculateCache() -> Float{                var total: Float = 0                if fileManager.fileExistsAtPath(basePath!){                    let childrenPath = fileManager.subpathsAtPath(basePath!)                    if childrenPath != nil{                        for path in childrenPath!{                            let childPath = basePath!.stringByAppendingString("/").stringByAppendingString(path)                            do{                                let attr = try fileManager.attributesOfItemAtPath(childPath)                                let fileSize = attr["NSFileSize"] as! Float                                total += fileSize                            }catch _{                            }                        }                    }                }                return total            }            let totalCache = caculateCache()            return NSString(format: "%.2f MB", totalCache / 1024.0 / 1024.0 ) as String        }    }

(2)清除缓存

func clearCache() -> Bool{        var result = true        let basePath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true).first        let fileManager = NSFileManager.defaultManager()        if fileManager.fileExistsAtPath(basePath!){            let childrenPath = fileManager.subpathsAtPath(basePath!)            for childPath in childrenPath!{                let cachePath = basePath?.stringByAppendingString("/").stringByAppendingString(childPath)                do{                    try fileManager.removeItemAtPath(cachePath!)                }catch _{                    result = false                }            }        }        return result    }

OC:
(1)查找缓存

- (void)clearCache{NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];    NSFileManager *fileManager=[NSFileManager defaultManager];    if ([fileManager fileExistsAtPath:path]) {        //拿到算有文件的数组        NSArray *childerFiles = [fileManager subpathsAtPath:path];        //拿到每个文件的名字,如有有不想清除的文件就在这里判断        for (NSString *fileName in childerFiles) {            //将路径拼接到一起            NSString *fullPath = [path stringByAppendingPathComponent:fileName];            folderSize += [self fileSizeAtPath:fullPath];        }        //点击了确定,遍历整个caches文件,将里面的缓存清空        NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];        NSFileManager *fileManager=[NSFileManager defaultManager];        if ([fileManager fileExistsAtPath:path]) {            NSArray *childerFiles=[fileManager subpathsAtPath:path];            for (NSString *fileName in childerFiles) {                //如有需要,加入条件,过滤掉不想删除的文件                NSString *absolutePath=[path stringByAppendingPathComponent:fileName];                [fileManager removeItemAtPath:absolutePath error:nil];                [self clear];            }        }    }}

(2)计算大小

-(float)fileSizeAtPath:(NSString *)path{    NSFileManager *fileManager=[NSFileManager defaultManager];    if([fileManager fileExistsAtPath:path]){        long long size=[fileManager attributesOfItemAtPath:path error:nil].fileSize;        return size/1024.0/1024.0;    }    return 0;}

(3)清除缓存

- (void)clear{    NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];    NSFileManager *fileManager=[NSFileManager defaultManager];    if ([fileManager fileExistsAtPath:path]) {        //拿到算有文件的数组        NSArray *childerFiles = [fileManager subpathsAtPath:path];        //拿到每个文件的名字,如有有不想清除的文件就在这里判断        for (NSString *fileName in childerFiles) {            //将路径拼接到一起            NSString *fullPath = [path stringByAppendingPathComponent:fileName];            folderSize += [self fileSizeAtPath:fullPath];            [self showAlert:@"清除成功"];        }    }}
0 0