這幾天有點小閒,回想前幾天,自己研究些基礎東西,又是看書又是上網搜又是實驗,每個小知識點都花了一兩天,其實有人指點一下,幾分鐘應該就能解決,為了防止以後再遇到這些問題,又要重新研究,還是自己把它紀錄下來,再用的時候看一下
json是一種小型資料庫,可以進行簡單的讀寫,相對於slqlite更適合於記憶體緊張的手機,而且cocos2d本身是支援json的,雖然它不主動提供這種庫。json適合寫入比較固定的,不會改變的資料,比如遊戲人物的出始屬性。
關於json的建立,首先要在mac上建立個文字編輯,然後把字尾改變json,再刪掉裡面的亂碼,即可帶入專案裡面的resources去。
關於要寫入的方法,很簡單,直接再json檔案裡面寫就行了,寫入的具體格式如下
{」a1「:
[{」a2「:a3,
「a4」:a5'}],
"a6":
}
a1,a6指的是具體的物件,a2,a4指的是具體的屬性,a3,a5指的是a2,a4具體的屬性值。
需要注意的是a1,a6,a2,a4,一定要打引號和冒號,a3,a5和中括號後面一定要打逗號,當a3是數字的時候不需要打引號,但當它為字串的時候一定要打引號。這些小細節很重要,因為json本身不是xcode的編譯檔案,所以出錯了不會提示,只會無法提出資料。
關於在標頭檔案中引用json的方法,首先要宣告#import
"cjsondeserializer.h"
然後寫入函式
nsstring
*path = [[
nsbundle
mainbundle]pathforresource:
@"hero"
oftype:
@"json"
];nsdata *jsondata = [[nsfilemanager
defaultmanager] contentsatpath:path];
cjsondeserializer*jsondeserializer = [cjsondeserializer
deserializer];
nserror *error = nil;
nsdictionary *jsondict = [jsondeserializer deserializeasdictionary:jsondata error:&error];
if (error) ;
nsarray *dictarray = [jsondict valueforkey:@"seiger"];
for (nsdictionary *dict in dictarray) {
/* 從json呼叫屬性*/
nsstring *seigerbhp = [dict valueforkey:@"bhp"];
};hero是json的檔名,seiger是具體的物件,bhp是要引用的屬性。
因為是用指標引出的,所以還要再轉換成函式指標,再轉成資料,有點麻煩。
大概的例子就是這樣int seigerbattack1=[seigerbattack intvalue];
seiger seigerhp=seigerbhp1+(seigerlevel1-1)*seigerghp1;。
json檔案大概的用法就是如此。
基礎總結 關於plist
前面提到了touch,但是touch一般只能讀不能寫,這樣是不能儲存遊戲中玩家的資料的,所以絕大部分iphone和手機應用都使用到了plist.plist是可以訪問少量的資料的。由於xcode本身支援和攜帶plist,所以使用起來,也是蠻方便的。甚至不需要專門引用標頭檔案。而取出方式和json是一樣...
關於web基礎的總結
頁面基本結構 塊級元素和行級元素 塊級元素 塊級大多為結構性標記 標題一級 標題二級 標題 標題四級 標題五級 標題六級 水平分割線 段落 滾動文字 無序列表 有序列表 表單 行內元素 行內大多為描述性標記 鏈結 換行 加粗 加粗 斜體 斜體 刪除線 下劃線 文字框 多行文字 下拉列表 塊級元素 1...
C基礎 關於typedef的用法總結
在c還是c 中,typedef都使用的很多,在c 中尤其是多。typedef與 define有些相似,其實是不同的,特別是在一些複雜的用法上,看了網上一些c c 的學習者的部落格,其中有一篇關於typedef的總結還是很不錯,由於總結的很好,我就不加修改的引用過來了,加上自己的乙個分析。基本定義 用...