真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ios開發(fā)文件,ios開發(fā)文件保存

iOS開發(fā)生成txt文件

一開始我用的方法一寫,但是后來發(fā)現(xiàn)在高系統(tǒng)上報(bào)錯(cuò)(大概報(bào)錯(cuò)內(nèi)容:NSCocoaErrorDomain:257)。

創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)按需制作網(wǎng)站,是成都網(wǎng)站設(shè)計(jì)公司,為混凝土攪拌站提供網(wǎng)站建設(shè)服務(wù),有成熟的網(wǎng)站定制合作流程,提供網(wǎng)站定制設(shè)計(jì)服務(wù):原型圖制作、網(wǎng)站創(chuàng)意設(shè)計(jì)、前端HTML5制作、后臺(tái)程序開發(fā)等。成都網(wǎng)站營銷推廣熱線:028-86922220

后來解決了,做個(gè)記錄。

1、在低于iOS13的系統(tǒng)中。用創(chuàng)建文件夾的形式可以如下:

+ (NSString *)tmpLogPath

{

NSString *docPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Library"];

NSString *dirPath = [docPath stringByAppendingPathComponent:@"mylog"];

NSString *filePath = [dirPath stringByAppendingPathComponent:@"tmpLog.txt"];

return filePath;

}

+ (void)writeTmpLog:(NSString *)aMsg

{

NSString *filePath = [[self class] tmpLogPath];

if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) {

? ? BOOL isDir = NO;

? ? BOOL hasDir = [[NSFileManager defaultManager] fileExistsAtPath:filePath isDirectory:isDir];

? ? if (!hasDir || !isDir) {

? ? ? ? [[NSFileManager defaultManager] createDirectoryAtPath:filePath withIntermediateDirectories:NO attributes:nil error:nil];

? ? }

}

NSError *error;

NSString *content =[NSString stringWithContentsOfFile:filePath

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? encoding:NSUTF8StringEncoding

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? error:error];

NSString *newContent = [NSString stringWithFormat:@"%@\n%@",content,aMsg];

[newContent writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];

}

+ (void)clearTmpLog

{

NSString *filePath = [[self class] tmpLogPath];

[@"" writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:nil];

}

2、但是在iOS13上,不能這樣寫。系統(tǒng)會(huì)默認(rèn)創(chuàng)建以為***.txt的文件夾,在寫入的時(shí)候就出問題了。

會(huì)報(bào)錯(cuò):NSCocoaErrorDomain:257 就是

NSFileReadNoPermissionError = 257,/ /讀取錯(cuò)誤(權(quán)限問題)

所以可以這樣寫:

+ (NSString *)tmpLogPath {

NSString *documentPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];

NSString *filePath = [documentPath stringByAppendingPathComponent:@"mylog/tmpLog.txt"];

returnfilePath;

}

+ (void)writeTmpLog:(NSString*)aMsg {

NSString*fieldPath = [[self class]tmpLogPath];

NSLog(@"當(dāng)前文件大小:%llu",[self fileSizeWithPath:fieldPath]);

NSFileManager *manager = [NSFileManager defaultManager];

if(![managerfileExistsAtPath:fieldPath]){

? ? NSError*error;

? ? [aMsgwriteToFile:fieldPath atomically:YES encoding:NSUTF8StringEncoding error:error];

? ? if(error) {

? ? ? ? NSLog(@"寫入失敗:%@\n",[error localizedDescription]);

? ? }

}else{

? ? NSError*error;

? ? NSError*writeError;

? ? NSString *content =[NSString stringWithContentsOfFile:fieldPath

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? encoding:NSUTF8StringEncoding

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? error:error];

? ? if(error) {

? ? ? ? NSLog(@"讀取失敗:%@\n",[error localizedDescription]);

? ? }

? ? NSString*newContent = [NSString stringWithFormat:@"%@\n%@",content,aMsg];

? ? [newContentwriteToFile:fieldPath atomically:YES encoding:NSUTF8StringEncoding error:writeError];

? ? if(writeError) {

? ? ? ? NSLog(@"寫入失敗:%@\n",[writeErrorlocalizedDescription]);

? ? }

}

}

//獲取文件大小

+ (unsignedlonglong)fileSizeWithPath:(NSString*)path {

signedlonglongfileSize =0;

NSFileManager *fileManager = [NSFileManager defaultManager];

if([fileManagerfileExistsAtPath:path]) {

? ? NSError*error =nil;

? ? NSDictionary*fileDict = [fileManagerattributesOfItemAtPath:patherror:error];

? ? if(!error fileDict) {

? ? ? ? fileSize = [fileDictfileSize];

? ? }

}

returnfileSize;

}

+ (void)clearTmpLog {

NSError*error;

NSFileManager *manager = [NSFileManager defaultManager];

NSString*filePath = [[selfclass]tmpLogPath];

[managerremoveItemAtPath:filePatherror:error];

if(error) {

? ? NSLog(@"刪除失敗:%@\n",[error localizedDescription]);

}

}

iOS開發(fā)使用的證書和文件有哪些

證書文件:

1.CSR文件:證書請(qǐng)求文件,從鑰匙串工具頒發(fā)(一個(gè)開發(fā)者賬號(hào)享有一份)

2.開發(fā)者開發(fā)用簽名文件:是開發(fā)者開發(fā)身份識(shí)別文件,蘋果后臺(tái)申請(qǐng)(一個(gè)開發(fā)者賬號(hào)享有一份)

3.開發(fā)者發(fā)布用簽名文件:是開發(fā)者發(fā)布身份識(shí)別文件,蘋果后臺(tái)申請(qǐng)(一個(gè)開發(fā)者賬號(hào)享有一份)

4.開發(fā)用推送證書(每個(gè)應(yīng)用一份)

5.發(fā)布用推送證書(每個(gè)應(yīng)用一份)

6.開發(fā)調(diào)試配置文件(每個(gè)應(yīng)用一份)

7.adhoc配置文件(每個(gè)應(yīng)用一份)

8.發(fā)布配置文件(每個(gè)應(yīng)用一份)。

就這些望采納

iOS開發(fā),plist文件讀寫操作

這里有一點(diǎn)需要注意:

命名的時(shí)候不能用Info.plist , INfo.plist, xxxInfo.plist等形式,否則會(huì)與系統(tǒng)中存在的Info.plist文件發(fā)生沖突。

點(diǎn)擊Root這一行,然后通過點(diǎn)擊右鍵-Add Row或者點(diǎn)擊Root后面的加號(hào)來增加一行。

這一行中包含三個(gè)屬性,key、type、value。其中key是字段屬性,type是字段類型,value是字段對(duì)應(yīng)的值。

Type包含7中類型,對(duì)寫入的數(shù)據(jù)結(jié)構(gòu)應(yīng)屬于7仲:

(NSString,NSData,NSDate,NSNumber,NSArray,NSDictionary)

讀取數(shù)據(jù)

文件是什么類型,就用什么類型的數(shù)據(jù)來接收

參考文檔1: iOS開發(fā),plist文件讀寫那些事

參考文檔2: iOS開發(fā)中怎么創(chuàng)建Plist文件

參考文檔3: 【iOS】plist無法寫入的原因

參考文檔4: plist 文件寫入與讀取


本文題目:ios開發(fā)文件,ios開發(fā)文件保存
轉(zhuǎn)載注明:http://weahome.cn/article/dscoejs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部