iOS Plist檔案,增刪改查
- (void)deletePlistWithName:(NSString *)name{ NSString * plistPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"test.plist"]; NSMutableDictionary * plistDic = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath]; if (nil == plistDic) { return; } NSArray * allkeys = [plistDic allKeys]; for (int i = 0; i < allkeys.coun
今天早上,9點開始弄Plist,然後一直寫,一直寫(中午取出40分鐘吃飯時間),寫到1點,寫完了,交給頭,頭說,不是這個意思。我是每個使用者建立了一個資料夾,在這個使用者的資料夾裡面,分別根據應用建立了資料夾,將Plist檔案存在這個應用的資料夾中。頭說:就只有一個Plist,這個Plist的命名是以使用者名稱稱來命名的,每個應用的名稱和資訊,記錄在這個Plist檔案裡面。這個Document裡面,只有一個Plist了。。剛睡醒午覺的我,灰灰地又回去改,有了上午的經驗,半個小時,就弄出來了。去給頭請示,又增加了兩個小功能,分別是根據所給是name,去判斷Plist裡面是否包含了這個欄位,如果有這個欄位,返回yes;沒有這個欄位,返回NO。
雖然我沒做過,但是覺得不難,頭說,要不我做,然後我說,不用,我做就行。回去鼓搗了半個小時,就提交SVN了。
以前也寫過Plist,不知道怎麼是咋的了,覺得好笨啊。整過來整過去,把自己給弄亂了,而且,測試的時候,也沒有針對性,測了半天,還是有bug。理解需求方面,也不行。好鬱悶。不過,還好,覺得自己一直在進步,萌萌噠~
剛才自己寫了一個小demo,簡單總結了一下。
如果我們想做這樣的一個Plist檔案的話,程式碼如下:
/** * 在document下建立plist */ NSString * documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]; //也可以這樣新增字尾 NSString * plistName = [[NSString stringWithFormat:@"test"]stringByAppendingPathExtension:@"plist"]; NSString * plistPath =[documentPath stringByAppendingPathComponent:plistName]; //使用NSMutableDictionary來接收plist裡面的檔案 NSMutableDictionary * plistDic = [[NSMutableDictionary alloc]initWithContentsOfFile:plistPath]; //判斷plist存不存在,如果不存在,則建立這個Dic,否則,後面的檔案寫入不進去 if (plistDic == nil) { plistDic = [[NSMutableDictionary alloc]init]; } //檔案已經建立完,開始往裡面新增資料 NSMutableDictionary * nameDic = [plistDic objectForKey:@"name"]; if (nil == nameDic) { nameDic = [[NSMutableDictionary alloc]init]; } //這個nameDic裡面,包含一個nameID和一個字典 NSDictionary * nameItemDic = [NSDictionary dictionaryWithObjectsAndKeys:@"tangtang",@"xiaoming", nil]; NSMutableDictionary * nameItemDic1 = [NSMutableDictionary dictionary]; [nameItemDic1 setObject:@"tangtang" forKey:@"xiaoming"]; [nameItemDic1 setObject:@"lili" forKey:@"nicheng"]; [nameItemDic1 setObject:@"12" forKey:@"age"]; NSMutableArray * nameArr = [NSMutableArray arrayWithArray:[nameDic objectForKey:@"nameArr"]];//因為,如果在之前有plist檔案的話,我們需要將它取出來,然後在後面進行新增 [nameArr addObject:nameItemDic]; [nameArr addObject:nameItemDic1]; NSString * name = @"tangtang"; [nameDic setObject:name forKey:@"name"]; [nameDic setObject:nameArr forKey:@"nameItem"]; [plistDic setObject:nameDic forKey:name]; [plistDic writeToFile:plistPath atomically:YES];
執行完上面的程式碼,我們用iFunbox開啟應用程式,在Document裡面,就能看到這個Plist了。相對比較簡單。
提供方法1:--查詢是否包含這個name
/**
* 遍歷plist檔案,取出裡面想取出的東西
*
* @return if find ,return YES;else ,return NO
*/
-(BOOL)queryPlistWithName:(NSString *)name{
NSString * plistPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"test.plist"];
NSMutableDictionary * plistDic = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];
if (nil == plistDic) {
return NO;
}
NSArray * allKeys = [plistDic allKeys];
for (int i = 0; i < allKeys.count; i++) {
NSMutableDictionary * tempDic = [plistDic objectForKey:[allKeys objectAtIndex:i]];
NSString * tempName = [tempDic objectForKey:@"name"];
if ([tempName isEqualToString:name]) {
NSLog(@"名字查詢到了");
return YES;
}
}
return NO;
}
提供方法二:刪除該name
- (void)deletePlistWithName:(NSString *)name{
NSString * plistPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"test.plist"];
NSMutableDictionary * plistDic = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];
if (nil == plistDic) {
return;
}
NSArray * allkeys = [plistDic allKeys];
for (int i = 0; i < allkeys.count; i++) {
NSMutableDictionary * tempDic = [plistDic objectForKey:[allkeys objectAtIndex:i]];
NSString * tempName = [tempDic objectForKey:@"name"];
if ([tempName isEqualToString:name]) {
[plistDic removeObjectForKey:name];
NSLog(@"刪除成功");
[plistDic writeToFile:plistPath atomically:YES];
return;
}
}
NSLog(@"未找到");
}
寫Plist,最主要的是:要明白自己的書寫順序,是字典還是陣列,哪個是一級的,哪個是二級的,等等。
還有就是不要忘記修改完之後,寫入檔案中。
總結完畢。。今天發工資,覺得自己的工資好低啊,旁邊的鄰居,剛開始找工作,就比我高1k,不甘心啊!!!!
t; i++) { NSMutableDictionary * tempDic = [plistDic objectForKey:[allkeys objectAtIndex:i]]; NSString * tempName = [tempDic objectForKey:@"name"]; if ([tempName isEqualToString:name]) { [plistDic removeObjectForKey:name]; NSLog(@"刪除成功"); [plistDic writeToFile:plistPath atomically:YES]; return; } } NSLog(@"未找到");}相關推薦
iOS Plist檔案,增刪改查
- (void)deletePlistWithName:(NSString *)name{ NSString * plistPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
XML檔案的一些操作,增刪改查
C#操作xml主要有這麼幾個物件:XmlDocument、XmlElement、XmlNode 名稱空間: using System.Xml; 知識補充: XmlNode和XmlElement的區別: 1、Element是一個小範圍的定義,必須含有完整資訊的節點才能叫做元素。
go語言筆記——切片函數常見操作,增刪改查和搜索、排序
通過 學習 strings 完整 官方文檔 二分 func fun 必須 7.6.6 搜索及排序切片和數組 標準庫提供了 sort 包來實現常見的搜索和排序操作。您可以使用 sort 包中的函數 func Ints(a []int) 來實現對 int 類型的切片排序。例如
Mysql 入門,增刪改查(進階篇)
bsp com pre sco height name 數據 mysql from 主要已以下兩個表students與students_score,進行數據的增刪改查操作! 1、SELECT 1)select id,tel from students
MyBites學習第一講,增刪改查
aid str org res pat nis href input ctype 一、準備開發環境 安裝jdk,下載一個eclipse,這裏就不多講啦 二、創建一個java項目,將下面的包導入到lib中並編譯 具體怎麽講包導入並編譯我這裏稍微講一下:選中項目右鍵——Bui
vue日誌demo,增刪改查的練習
日誌組 sum 必須 創建 pre 方法 prev 文件夾 edit # 安裝### 1. 確定電腦已裝node和npm``` node -v ``` ``` npm -v```出現版本號則說明電腦已經安裝好node和npm### 2. 創建一個基於webpack的項目 `
列表(索引與切片,增刪改查) ,計數,排序,元祖和元祖的嵌套
元素 col 切片 ack list 升序 不能 height pen 1.列表 1.列表相比於字符串. 不限制數據類型. 而且可以存放大量的數據 2.表示方式: [] 方括號中的每一項都要逗號隔開 3.列表和字符串一樣,也有索引與切片 常用功
WebSQL創庫、表,增刪改查例子
executeSql 注意大小寫!!!!錯一個方法都無效 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document<
python使用mysql資料庫,增刪改查
需要注意的是: mysql資料建立的表中,欄位名中不能出現key當欄位名。 因為使用python中呼叫插入語句時,不能成功插入。 匯入庫 import MySQLdb 連線資料庫 #開啟資料庫連線 db = MySQLdb.connec
MySQL簡單的操作,增刪改查
B/S架構模式與C/S架構模式的區別 B/S=WEB/SERVER C/S=CLIENT/SERVIR B/S:使用者通過web瀏覽器開啟域名就能訪問伺服器server的方式就叫做B/S使用者不需要安裝任何東西 C/S:所謂客戶端client在所謂的使用者的電腦裡是需要
第3講 3.2 ElasticSearch建立索引,增刪改查文件
3.寫方法testGet()根據id獲取文件, 測試 @Test public void testGet() throws Exception{
第3講:3.1 ElasticSearch建立索引,增刪改查文件
1.新建一個testIndex類,設定ip和埠,寫getClient(){} 方法,新增@Before註解 package com.cruise; import java.net.InetAddress; import org.elasticsearch.action.d
Hibernate的入門之配置檔案和增刪改查
首先使用maven匯入jar包,然後配置主xml檔案 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Confi
mybatis3.1-[topic-16-17]-對映檔案_增刪改查_insert_獲取自增主鍵的值
筆記要點出錯分析與總結 /**測試第16章的增,刪,改 的內容 * 錯誤1: <insert id="addEmp" parameterType="com.bean.Employee"> ,注意選取資料型別是parameterType,不是Map * 錯誤2: 按順序查詢全部
對haproxy檔案進行增刪改查
1、檔案內容 global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 info defaults log global mod
C# 用Linq的方式實現對Xml檔案的基本操作(建立xml檔案、增刪改查xml檔案節點資訊)
1 private static void GetXmlNodeInforOld( string xmlPath) 2 { 3 try 4 { 5
MYSQL 基本操作語句,增刪改查操作...
MYSQL 增刪改查操作 MYSQL 對資料庫的基本操作 1、檢視資料庫: mysql> show databases; 2、建立資料庫:db_test mysql> crea
git入門學習一(git安裝,增刪改查基本操作命令)
git 工作區 暫存區 版本庫 在當前目錄新建一個Git程式碼庫 git init (會多出.git資料夾) 設計提交程式碼時的使用者資訊 :git config --global user.name zhangsan git config --glob
基於SpringMVC的檔案(增刪改查)上傳、下載、更新、刪除
一、專案背景 摘要:最近一直在忙著專案的事,3個專案過去了,發現有一個共同的業務,那就是附件的處理,附件包括各種文件,當然還有圖片等特殊檔案,由於時間的關係,每次都是匆匆忙忙的搞定上線,稱這專案的空檔,整理了一份附件上傳、下載、刪除的專案,主要就是附件的處理,情況包含以下幾種: 1. 表單個附件共存
Python--綜合練習--對檔案進行增刪改查
知識點應用:strip() tag 函式封裝 檔案操作 for迴圈 os模組 程式碼解耦 例項 tag = True while tag: print('level') choice = input('level1