麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

IOS開發基礎知識--碎片16

2019-11-14 18:50:32
字體:
來源:轉載
供稿:網友

 

1:Objective-C語法之動態類型(isKindOfClass, isMemberOfClass,id)

 

對象在運行時獲取其類型的能力稱為內省。內省可以有多種方法實現。判斷對象類型-(BOOL) isKindOfClass: classObj判斷是否是這個類或者這個類的子類的實例-(BOOL) isMemberOfClass: classObj 判斷是否是這個類的實例實例一:   Person *person = [[Person alloc] init];      //父類   Teacher *teacher = [[Teacher alloc] init];  //子類        //YES      if ([teacher isMemberOfClass:[Teacher class]]) {          NSLog(@"teacher Teacher類的成員");     }     //NO      if ([teacher isMemberOfClass:[Person class]]) {         NSLog(@"teacher Person類的成員");     }     //NO      if ([teacher isMemberOfClass:[NSObject class]]) {         NSLog(@"teacher NSObject類的成員");     }  實例二:Person *person = [[Person alloc] init];  Teacher *teacher = [[Teacher alloc] init];    //YES   if ([teacher isKindOfClass:[Teacher class]]) {      NSLog(@"teacher 是 Teacher類或Teacher的子類");  }  //YES   if ([teacher isKindOfClass:[Person class]]) {      NSLog(@"teacher 是 Person類或Person的子類");  }  //YES   if ([teacher isKindOfClass:[NSObject class]]) {      NSLog(@"teacher 是 NSObject類或NSObject的子類");  }  isMemberOfClass判斷是否是屬于這類的實例,是否跟父類有關系他不管,所以isMemberOfClass指到父類時才會為NO;對方法進行判斷:-(BOOL) respondsToSelector: selector 判讀實例是否有這樣方法+(BOOL) instancesRespondToSelector:  判斷類是否有這個方法。此方法是類方法,不能用在類的對象實例三:// YES   teacher是對象if ( [teacher respondsToSelector: @selector( setName: )] == YES ) {      NSLog(@"teacher responds to setSize: method" );  } // YES   Teacher是類if ( [Teacher instancesRespondToSelector: @selector(teach)] == YES ) {      NSLog(@"Teacher instance responds to teach method");  }  

2:IOS 開發中判斷字符串是否為空字符的方法

- (BOOL) isBlankString:(NSString *)string {    if (string == nil || string == NULL) {        return YES;    }    if ([string isKindOfClass:[NSNull class]]) {        return YES;    }    if ([[string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) {        return YES;    }    return NO;} 

3:刪除Caches文件夾的內容

// 文件管理者NSFileManager *mgr = [NSFileManager defaultManager];// 緩存路徑NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];[mgr removeItemAtPath:caches error:nil];

4:計算某個文件夾或文件的大小

/** *  @ 15-06-17 09:06:22 * *  @brief  計算文件或文件夾的大小 因為osx 文件夾是沒有大小這個屬性 要通過各個文件計算得到 subpathsAtPath可以獲得文件夾下面所有的文件 包含子文件夾里面 *  @param filePath 比如緩存caches的路徑 *  @return 大小 */- (NSInteger)fileSize:(NSString *)filePath{    NSFileManager *mgr = [NSFileManager defaultManager];    // 判斷是否為文件    BOOL dir = NO;    BOOL exists = [mgr fileExistsAtPath:filePath isDirectory:&dir];    // 文件/文件夾不存在    if (exists == NO) return 0;        if (dir) { // self是一個文件夾        // 遍歷caches里面的所有內容 --- 直接和間接內容        NSArray *subpaths = [mgr subpathsAtPath:filePath];        NSInteger totalByteSize = 0;        for (NSString *subpath in subpaths) {            // 獲得全路徑            NSString *fullSubpath = [filePath stringByAppendingPathComponent:subpath];            // 判斷是否為文件            BOOL dir = NO;            [mgr fileExistsAtPath:fullSubpath isDirectory:&dir];            if (dir == NO) { // 文件                totalByteSize += [[mgr attributesOfItemAtPath:fullSubpath error:nil][NSFileSize] integerValue];            }        }        return totalByteSize;    } else { // 是一個文件        return [[mgr attributesOfItemAtPath:filePath error:nil][NSFileSize] integerValue];    }}調用傳入下面的路徑:NSFileManager *mgr = [NSFileManager defaultManager];// 緩存路徑NSString *caches = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];

5:文件操作(NSFileManager)iOS (轉)

iOS的沙盒機制,應用只能訪問自己應用目錄下的文件。iOS不像android,沒有SD 卡概念,不能直接訪問圖像、視頻等內容。iOS應用產生的內容,如圖像、文件、緩存內容等都必須存儲在自己的沙盒內。默認情況下,每個沙盒含有3個文件 夾:Documents, Library 和 tmp。Library包含Caches、PReferences目錄。Documents:蘋果建議將程序創建產生的文件以及應用瀏覽產生的文件數據保存在該目錄下,iTunes備份和恢復的時候會包括此目錄Library:存儲程序的默認設置或其它狀態信息;Library/Caches:存放緩存文件,保存應用的持久化數據,用于應用升級或者應用關閉后的數據保存,不會被itunes同步,所以為了減少同步的時間,可以考慮將一些比較大的文件而又不需要備份的文件放到這個目錄下。tmp:提供一個即時創建臨時文件的地方,但不需要持久化,在應用關閉后,該目錄下的數據將刪除,也可能系統在程序不運行的時候清除。a:獲取應用沙盒根路徑:-(void)dirHome{      NSString *dirHome=NSHomeDirectory();          NSLog(@"app_home: %@",dirHome);  } b:獲取Documents目錄路徑: -(NSString *)dirDoc{      //[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];      NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);      NSString *documentsDirectory = [paths objectAtIndex:0];      NSLog(@"app_home_doc: %@",documentsDirectory);      return documentsDirectory;  }  c:獲取Library目錄路徑:-(void)dirLib{      //[NSHomeDirectory() stringByAppendingPathComponent:@"Library"];      NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);      NSString *libraryDirectory = [paths objectAtIndex:0];      NSLog(@"app_home_lib: %@",libraryDirectory);  }  d:獲取Cache目錄路徑:-(void)dirCache{      NSArray *cacPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);      NSString *cachePath = [cacPath objectAtIndex:0];      NSLog(@"app_home_lib_cache: %@",cachePath);  } e:獲取Tmp目錄路徑:-(void)dirTmp{      //[NSHomeDirectory() stringByAppendingPathComponent:@"tmp"];      NSString *tmpDirectory = NSTemporaryDirectory();      NSLog(@"app_home_tmp: %@",tmpDirectory);  }  f:創建文件夾:-(void *)createDir{      NSString *documentsPath =[self dirDoc];      NSFileManager *fileManager = [NSFileManager defaultManager];      NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];      // 創建目錄      BOOL res=[fileManager createDirectoryAtPath:testDirectory withIntermediateDirectories:YES attributes:nil error:nil];      if (res) {          NSLog(@"文件夾創建成功");      }else          NSLog(@"文件夾創建失敗");   } g:創建文件-(void *)createFile{      NSString *documentsPath =[self dirDoc];      NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];      NSFileManager *fileManager = [NSFileManager defaultManager];      NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"];      BOOL res=[fileManager createFileAtPath:testPath contents:nil attributes:nil];      if (res) {          NSLog(@"文件創建成功: %@" ,testPath);      }else          NSLog(@"文件創建失敗");  } h:寫數據到文件:-(void)writeFile{      NSString *documentsPath =[self dirDoc];      NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];      NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"];      NSString *content=@"測試寫入內容!";      BOOL res=[content writeToFile:testPath atomically:YES encoding:NSUTF8StringEncoding error:nil];      if (res) {          NSLog(@"文件寫入成功");      }else          NSLog(@"文件寫入失敗");  }  i:讀文件數據:-(void)readFile{      NSString *documentsPath =[self dirDoc];      NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];      NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"];  //    NSData *data = [NSData dataWithContentsOfFile:testPath];  //    NSLog(@"文件讀取成功: %@",[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);      NSString *content=[NSString stringWithContentsOfFile:testPath encoding:NSUTF8StringEncoding error:nil];      NSLog(@"文件讀取成功: %@",content);  }  j:文件屬性:-(void)fileAttriutes{      NSString *documentsPath =[self dirDoc];      NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];      NSFileManager *fileManager = [NSFileManager defaultManager];      NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"];      NSDictionary *fileAttributes = [fileManager attributesOfItemAtPath:testPath error:nil];         NSArray *keys;      id key, value;      keys = [fileAttributes allKeys];      int count = [keys count];      for (int i = 0; i < count; i++)      {          key = [keys objectAtIndex: i];          value = [fileAttributes objectForKey: key];          NSLog (@"Key: %@ for value: %@", key, value);      }  }  k:刪除文件:-(void)deleteFile{      NSString *documentsPath =[self dirDoc];      NSString *testDirectory = [documentsPath stringByAppendingPathComponent:@"test"];      NSFileManager *fileManager = [NSFileManager defaultManager];      NSString *testPath = [testDirectory stringByAppendingPathComponent:@"test.txt"];         BOOL res=[fileManager removeItemAtPath:testPath error:nil];      if (res) {          NSLog(@"文件刪除成功");      }else          NSLog(@"文件刪除失敗");         NSLog(@"文件是否存在: %@",[fileManager isExecutableFileAtPath:testPath]?@"YES":@"NO");  }  

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产毛片网| 一本视频在线观看 | 一级一片免费 | 免费国产一级特黄久久 | 一级黄片毛片免费看 | 毛片在线播放视频 | 国产精品久久久久影院老司 | 色播视频网站 | 欧美极品欧美精品欧美视频 | av在线免费看片 | 亚洲精品久久久久久下一站 | 亚洲导航深夜福利涩涩屋 | 国产亚洲精品久久久久久久久久 | 一级黄色在线免费观看 | 五月天影院,久久综合, | 福利在线国产 | 成人勉费视频 | 亚洲成人福利在线观看 | 久久av一区二区 | 久久久久久久久国产精品 | 日韩一级片一区二区三区 | 国产精品资源手机在线播放 | 91麻豆精品国产91久久久无需广告 | 黑色丝袜美美女被躁视频 | av资源在线天堂 | av在线播放地址 | 国产精品久久久久久久不卡 | 黄色片免费在线播放 | 精品久久久久久久 | 久久久激情网 | av电影在线观看网站 | 毛片一区二区三区四区 | 免费人成年短视频在线观看网站 | www嫩草 | 亚洲综合91 | 毛片免费观看完整版 | 九九热国产视频 | 国产午夜免费视频 | 一级免费观看 | av电影网站在线观看 | 宅男噜噜噜66国产免费观看 |