⑴ 如何對.plist文件添加,刪除數據
主要操作:
1.//獲得plist路徑 -(NSString*)getPlistPath;
2.//判斷沙盒中名為plistname的文件是否存在 -(BOOL) isPlistFileExists;
3.//讀取沙盒中Document文件夾下的BookList.plist文件
[:plistPath];
4.//寫入文件 if ([plistDictionary writeToFile:plistPath atomically:YES])
WBBooksManager.m文件:
#import "WBBooksManager.h"
@implementation WBBooksManager
static WBBooksManager *g_instance = nil;
+ (WBBooksManager *)sharedInstance
{
@synchronized(self) {
if ( g_instance == nil ) {
g_instance = [[self alloc] init];
}
}
return g_instance;
}
//獲得plist路徑
-(NSString*)getPlistPath{
//沙盒中的文件路徑
NSArray *storeFilePath = (NSDocumentDirectory, NSUserDomainMask, YES);
NSString *doucumentsDirectiory = [storeFilePath objectAtIndex:0];
NSString *plistPath =[doucumentsDirectiory :@"WBBooks.plist"]; //根據需要更改文件名
return plistPath;
}
//判斷沙盒中名為plistname的文件是否存在
-(BOOL) isPlistFileExists{
NSString *plistPath =[[WBBooksManager sharedInstance]getPlistPath];
NSFileManager *fileManager = [NSFileManager defaultManager];
if( [fileManager fileExistsAtPath:plistPath]== NO ) {
NSLog(@"not exists");
return NO;
}else{
return YES;
}
}
-(void)initPlist{
NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath];
//如果plist文件不存在,將工程中已建起的plist文件寫入沙盒中
if (! [[WBBooksManager sharedInstance] isPlistFileExists]) {
//從自己建立的plist文件 復制到沙盒中 ,方法一
NSError *error;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *bundle = [[NSBundle mainBundle] pathForResource:@"WBBooks" ofType:@"plist"];
[fileManager ItemAtPath:bundle toPath:plistPath error:&error];
//方法二
// NSString *path = [[NSBundle mainBundle] pathForResource:@"WBBooks"ofType:@"plist"];
// NSMutableDictionary *activityDics = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
// [activityDics writeToFile:plistPath atomically:YES];
}
}
//判斷key的書是否存在
-(BOOL)isBookExistsForKey:(NSString*)key{
NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath];
NSMutableDictionary *WBBooksDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
//根目錄下存在名為bookname的字典
if ([WBBooksDictionary objectForKey:key]) {
return YES;
}else{
return NO;
}
}
//根據key值刪除對應書籍
-(void)removeBookWithKey:(NSString *)key{
NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath];
NSMutableDictionary *WBBooksDictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
[WBBooksDictionary removeObjectForKey:key];
[WBBooksDictionary writeToFile:plistPath atomically:YES]; //刪除後重新寫入
}
//刪除plistPath路徑對應的文件
-(void)deletePlist{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath];
[fileManager removeItemAtPath:plistPath error:nil];
}
//將dictionary寫入plist文件,前提:dictionary已經准備好
-(void)writePlist:(NSMutableDictionary*)dictionary forKey:(NSString *)key{
NSMutableDictionary *plistDictionary = [[NSMutableDictionary alloc]init];
//如果已存在則讀取現有數據
if ([[WBBooksManager sharedInstance]isPlistFileExists]) {
plistDictionary = [[WBBooksManager sharedInstance]readPlist];
}
//增加一個數據
[plistDictionary setValue:dictionary forKey:key]; //在plistDictionary增加一個key為...的value
NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath];
if([plistDictionary writeToFile:plistPath atomically:YES]){
NSLog(@"write ok!");
}else{
NSLog(@"ddd");
}
}
//
-(NSMutableDictionary*)readPlist{
NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath];
NSMutableDictionary *resultDictionary = [[NSMutableDictionary alloc]initWithContentsOfFile:plistPath];
return resultDictionary;
}
//讀取plist文件內容復制給dictionary 備用
-(void)readPlist:(NSMutableDictionary **)dictionary{
NSString *plistPath = [[WBBooksManager sharedInstance] getPlistPath];
*dictionary = [[NSMutableDictionary alloc] initWithContentsOfFile:plistPath];
}
//更改一條數據,就是把dictionary內key重寫
-(void)replaceDictionary:(NSMutableDictionary *)newDictionary withDictionaryKey:(NSString *)key{
[[WBBooksManager sharedInstance]removeBookWithKey:key];
[[WBBooksManager sharedInstance]writePlist:newDictionary forKey:key];
}
-(NSInteger)getBooksCount{
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
dictionary = [[WBBooksManager sharedInstance] readPlist];
return [dictionary count];
}
⑵ js可以操作plist文件嗎
js可以操作plist文件的
使用js讀取文件的放鬆即可
讀文件:
functionreadFile(filename){
varfso=newActiveXObject("Scripting.FileSystemObject");
varf=fso.OpenTextFile(filename,1);
vars="";
while(!f.AtEndOfStream)
s+=f.ReadLine()+" ";
f.Close();
returns;
}
⑶ 請問如何讀入數據,plist文件(用記事本即可打開)
plist文件用記事本打開方法如下:
1.
打開系統記事本程序:
2.
輸入System.Diagnostics.Process.Start("notepad.exe")
3.
用記事本程序打開一個txt文件:
例如在D盤的【abc.txt】文件,傳入文件的路徑參數即可,如下:
System.Diagnostics.Process.Start("notepad.exe",
"D:\\a.txt");
⑷ iOS 中 plist 文件的使用
解釋一下,plist 文件就是 Property List 文件,我們在 Xcode 中新建一個 Project 的時候,在 Project 中可以看到有一個 Info.plist 文件,這種以 .plist 後綴結尾的文件是以 key-value 鍵值對的形式保存數據的。在開發中,我們可以使用這些 plist 文件保存一些系統配置、用戶信息等的信息,炒雞方便。
這樣吧,我搞一個 plist 文件,裡面放有一些城市列表數據,然後把它讀取出來。
新建一個 Property List 文件(以下簡稱 plist 文件),姑且起個名字 Cities.plist
打開 Cities.plist 文件,發現它可以存儲 Array(數組)和 Dictionary(字典)數據
由於城市列表就是個數組,所以我們在 Root 這個 key 中的 Type 選擇 Array,並往裡面添加點城市數據
添加完模擬數據,才發現添加的不是城市數據...算了,當作城市吧
其實 plist 文件本質就是一個 xml 文件
控制台列印:
這樣拿到數據就可以對它進行一些處理了。
好吧,我只是經常要用到記錄一下而已🌚
⑸ 用觸動怎麼讀取plist的數組
.plist文件裡面放的可能是數組也可能是字典,我們如果直接用NSLog方法列印數組,字典的時候,我們會得到的就是這樣的編碼格式的內容,這顯然是不能用在android的,所以我們的思路是要將.plist中的內容列印為我們能處理的內容,那就是JsonString了。所以iOS這邊的做法,如圖片所示,先將plist文件放入,然後讀取出內部的數組信息,然後用SBJson轉化為NSString,然後在NSLog列印出來,運行程序我們會得到
⑹ iOS開發,plist文件讀寫操作
這里有一點需要注意:
命名的時候不能用Info.plist , INfo.plist, xxxInfo.plist等形式,否則會與系統中存在的Info.plist文件發生沖突。
點擊Root這一行,然後通過點擊右鍵->Add Row或者點擊Root後面的加號來增加一行。
這一行中包含三個屬性,key、type、value。其中key是欄位屬性,type是欄位類型,value是欄位對應的值。
Type包含7中類型,對寫入的數據結構應屬於7仲:
(NSString,NSData,NSDate,NSNumber,NSArray,NSDictionary)
讀取數據
文件是什麼類型,就用什麼類型的數據來接收
參考文檔1: iOS開發,plist文件讀寫那些事
參考文檔2: iOS開發中怎麼創建Plist文件
參考文檔3: 【iOS】plist無法寫入的原因
參考文檔4: plist 文件寫入與讀取
⑺ 如何讀取ipa目錄裡面的 iTunesMetadata.plist這個文件的內容
1. 直接刪除iTunesMetadata.plist文件
2. 修改iTunesMetadata.plist文件的訪問許可權,將用戶的「讀取、寫入」全部取消。注意:如果這時直接退出程序,所做的修改並沒有被確認。所以訪問許可權修改後必須退回到上一級目錄,然後再退出程序。
3. 重新打開Appstore程序,會發現Appbox已經沒有更新提示了。
⑻ Jenkins打包後續:Shell腳本自動修改build號,並提交TestFlight
1、自動修改Build號,並生成提交,push到遠程分支上;
2、開始打Release包,並導出IPA文件;
3、利用Application Loader插件實現自動上傳。
前提:Jenkins相關配置已經完成,發布證書、本地Git用戶、push到Git上的許可權賬戶等都已配置完成,如果配置未完成,部分錯誤在後面會出現,再補上也OK。
(1)先取到當前Build號,Shell中讀取plist文件的方法比較簡單,利用的是Mac中操作plist文件的PlistBuddy,路徑在/usr/libexec/PlistBuddy下,這點在之前的文章中寫過: Jenkins 自動打包後打一個tag並同步到origin 。
(2)將版本號(示例:1.0.8.3)先分割字元串,取到最後一個元素(可能會是2位數字或者3位數字),然後把最後一個元素轉數字,再 +1 ,再轉回字元串。
(3)進行字元串拼接,最終效果:1.0.8.4
(4)將新的Build號寫入info.plist文件
(1)生成提交描述:
(2)到對應的Git目錄下進行Git操作
寫成兩個Shell步驟即可:
這點在之前的Jenkins文章中寫過了,主要是利用xcbuild命令去做的,這里要注意的就是打包的類型要又debug改為release即可。
⑼ 如何/怎麼查看和編輯plist文件
1:首先,打開同步助手,然後連接手機(或者iPad),點擊更多功能。
2:或者點文件,也可以進入U盤,進行文件存放。
3:到更多功能,點U盤,這個U盤是可以存放東西,也可以將plist文件放進去。
4:可以直接選中plist拖拽進入,或者點導入,導入plist文件進去。
5:雙擊打開plist文件,就可以進行編輯了,編輯完畢之後,記得要點保存,才修改有效。
⑽ xcode怎麼獲取plist文件
創建.plist文件。
方法:
1、選中Xcode,File-New-File…;
2、在工程目錄處右鍵,New File…;
3、選中Xcode,使用快捷方式cmd+n組合鍵;
4、代碼創建(往後說明步驟)。
效果如圖。可以選擇iOS和OS X中任意一個「Resource」中的「Property List」創建並命名保存。當前名稱為:usersList.plist。
iOS開發 plist文件操作
往.plist文件添加數據並顯示
在Xcode項目中點擊usersList.plist,可以打開顯示usersList.plist文件中的內容。
可以在空白處右鍵「Add Row」添加數據或者點中「root」行,點擊「+」號即可添加。一般數據類型(Type)可以選擇Array、Dictionary、String等類型。同時也可以給添加的數據賦值(Value)。
除了以Property List列表形式顯示外,選中usersList.plist文件,右鍵「Open As」-「Source Code」可以以XML格式顯示。當前操作結果如圖。
iOS開發 plist文件操作
iOS開發 plist文件操作
使用代碼創建.plist文件。
//獲取本地沙盒路徑
NSArray *path = (NSDocumentDirectory, NSUserDomainMask, YES);
//獲取完整路徑
NSString *documentsPath = [path objectAtIndex:0];
NSString *plistPath = [documentsPath :@"usersList.plist"];
NSMutableDictionary *usersDic = [[NSMutableDictionary alloc ] init];
//設置屬性值
[usersDic setObject:@"chan" forKey:@"name"];
[usersDic setObject:@"123456" forKey:@"password"];
//寫入文件
[usersDic writeToFile:plistPath atomically:YES];
iOS開發 plist文件操作
添加修改數據操作
添加或修改已有數據。此文件不是已有的usersList.plist文件,而是存在沙盒裡面的文件。usersList.plist內容是不變的。需要查看可以到模擬器沙盒查看。
//獲取已有完整路徑
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"usersList" ofType:@"plist"];
NSMutableDictionary *usersDic = [[NSMutableDictionary alloc]initWithContentsOfFile:plistPath];
//設置屬性值,沒有的數據就新建,已有的數據就修改。
[[usersDic objectForKey:@"users"] setObject:@"逗比" forKey:@"name"];
[[usersDic objectForKey:@"users"] setObject:@"dbdbdb" forKey:@"password"];
//寫入文件
[usersDic writeToFile:plistPath atomically:YES];
如果是想用其他文件名稱可以根據路徑創建新plist文件
NSString *filename=[plistPath :@"test.plist"];//已有該名稱文件就不新建,沒有就新建。
如要多層次結構,則如圖。
iOS開發 plist文件操作