Parse 輕鬆構建移動APP的後台服務(2)

2021-09-30 15:04:47 字數 2663 閱讀 2339

parse支援的資料型別

目前parse的table column支援nsstring, nsnumber, nsdate, nsdata, 或者另外乙個pfobject。同時也可以使用nsdictionary and nsarray儲存結構化的資料。其中nsarray 支援相對應的查詢。雖然可以使用nsdata儲存二進位制資料,但是推薦先使用pffile儲存檔案,比如**等,而在對應的column儲存pffile的引用。

常用的查詢

類似sql,查詢時先建立pfquery物件,然後設定查詢條件。

先看個簡單的,查詢gamescore表中playname等於 「dan stemokoski」的所有記錄。

pfquery *query = [pfquery querywithclassname:@"gamescore"];[query wherekey:@"playername" equalto:@"dan stemkoski"];nsarray *objects = [query findobjects];

這個是查nsnumber,查詢 playage大於18的所有記錄。

[query wherekey:@"playerage" greaterthan:[nsnumber numberwithint:18]];

這個是查陣列的,arymatchtypes是乙個nsarray的陣列,下面的語句查詢arymatchtypes包含"football"的所有記錄。

複製**

[query wherekey:@"arymatchtypes" equalto:@"football"];

既然是物件導向的,parse也支援關聯查詢,下面的例子中comment和post都是parse的物件,下面的**可以查詢包含mypost物件的所有comment記錄。

pfquery *query = [pfquery querywithclassname:@"comment"];

[query wherekey:@"post" equalto:mypost];

parse支援子查詢,下面的例子是找到所有comments的記錄,其中的post含有image。

pfquery *innerquery = [pfquery querywithclassname:@"post"];

[innerquery wherekeyexists:@"image"];

pfquery *query = [pfquery querywithclassname:@"comment"];

[query wherekey:@"post" matchesquery:innerquery];

或查詢,很遺憾,parse不支援or條件查詢,只支援and,要用or的話可以用compound query,類似sql的union

pfquery *lotsofwins = [pfquery querywithclassname:@"player"];

[lotsofwins wherekey:@"wins" greaterthan:[nsnumber numberwithint:150]];

pfquery *fewwins = [pfquery querywithclassname:@"player"];

[lotsofwins wherekey:@"wins" lessthan:[nsnumber numberwithint:5]];

pfquery *query = [pfquery orquerywithsubqueries:[nsarray arraywithobjects:fewwins,lotsofwins,nil]];

快取查詢的結果集合支援快取,也可以設定不同的快取策略。快取都是query級別的。

query.cachepolicy = kpfcachepolicynetworkelsecache;

可以指定以下幾種快取策略:

kpfcachepolicyignorecache: 查詢結果來自伺服器,而且也不會儲存在快取。這是預設的設定。

kpfcachepolicycacheonly : 只從緩訪問資料。如果快取沒有資料會產生pferror,也可以忽略不處理這個error。

kpfcachepolicynetworkonly: 只從網路取資料,同時儲存在快取。

kpfcachepolicycacheelsenetwork: 先從緩訪問資料,如果沒有的話,再從網路取。

kpfcachepolicynetworkelsecache: 先從網路取資料, 沒有的話再從快取取。

kpfcachepolicycachethennetwork; 先從緩訪問資料,無論結果如何都會再次呼叫callback函式查詢伺服器。也就是說會產生2次呼叫。通常的用法是先快速取出資料展示view,然後再後台連線網路取得最新資料,取到後用來自網路伺服器的最新資料更新view。這種policy不能用於findobjects方法,只能用在非同步呼叫的findobjectsinbackground。

基於ArcGIS構建安全的移動端App

根據平常工作中跟客戶 開發商朋友交流的情況來看,移動端的空間資訊保安 一直都是大家很關心的問題。arcgis10.1 提供更多的安全策略,更好的保護移動端的空間資訊保安。比如 1 arcgis server 提供許可權管理和令牌驗證功能,控制不同的使用者和角色訪問或者編輯 不同的地圖服務 2 arc...

談談移動App的思維誤區

使用者使用時長下降,一定是應用出現了問題 在許多移動統計系統裡,有使用者平均每次使用時長這一資料。如果你發現這個資料有所下降,就認為這一定是壞事,這種想法可能有欠全面。事實上,你需要考慮你最近是否對軟體進行了優化,因為有一種可能是這種優化減少了使用者探索和誤操作的時間。例如使用者很喜歡魔圖的拼圖功能...

談談移動App的思維誤區

使用者使用時長下降,一定是應用出現了問題 在許多移動統計系統裡,有使用者平均每次使用時長這一資料。如果你發現這個資料有所下降,就認為這一定是壞事,這種想法可能有欠全面。事實上,你需要考慮你最近是否對軟體進行了優化,因為有一種可能是這種優化減少了使用者探索和誤操作的時間。例如使用者很喜歡魔圖的拼圖功能...