2011-12-19 28 views
1

我已經看過示例代碼,但仍然無法找出框架的一些關鍵功能,而沒有更深入的文檔。通常有一些關於框架的書,但是看起來就像這個框架一樣,直到它接受更多的主流用法時,你才能獨立運作。iPhone的XMPPRoster示例?

我如何獲得名單?我看到XMPPRosterCoreDataStorage有一個rosterPopulationSet的NSMutableSet。這是一組XMPPUserCoreDataStorageObjects,即組成一個名單的用戶嗎?

我的方式我猜測是一個黑客 - 獲取每個用戶的存在,並將其存儲在數組中。這些是在線好友。以某種方式獲得整個名單,並且每個不在線的人都處於離線狀態。

我認爲應該有一個XMPPUserCoreDataStorageObjects數組,即30個聯繫人,XMPPUserCoreDataStorageObjects表中有30個條目? 我如何訪問這個數組,我將如何判斷他們是否在線? 對於在線狀態,我應該查詢別的什麼,B/C它沒有封裝在XMPPUserCoreDataStorageObjects中嗎? 我想我可以使用didReceivePresence或類似的方法,但總而言之,我想使用框架,而不是與它作鬥爭。

欣賞它!

感謝

+0

您對如何檢索用戶名單有基本的瞭解嗎?如何存儲名冊,數組,字典等?你對CoreData有一個基本的瞭解,以及如何存儲值? – WrightsCS 2011-12-20 04:26:58

+0

我知道CoreData的基礎知識。我不知道該名冊在框架中的位置或如何檢索它。它是XMPPRoster,XMPPRosterCoreDataStorageObject還是XMPPUserCoreDataStorageObject。 – user798719 2011-12-20 05:29:58

回答

4

使用XMPPRoster擴展與任何XMPPRosterCoreDataStorageXMPPRosterMemoryStorage

看看下面的代碼。請注意,這不是完整的代碼,但應該給你一個想法。

XMPPRosterMemoryStorage *rosterstorage = [[XMPPRosterMemoryStorage alloc] init]; 
xmppRoster = [[XMPPRoster alloc] initWithRosterStorage:rosterstorage]; 
[xmppRoster activate:xmppStream]; 
[xmppRoster fetchRoster]; 
+0

謝謝。出於某種原因,我更好地理解了內存中的名冊存儲。在調用[xmppRoster fetchRoster]之後,我可以看到名單存儲在一個NSMutableDictionary中。但是,使用CoreData時,相應的結構應爲:\t XMPPRosterCoreDataStorage內的NSMutableSet * rosterPopulationSet。 – user798719 2011-12-20 16:57:33

+0

我沒有使用XMPPRosterCoreDataStorage,但據我的理解,它將處理存儲數據到數據庫,你將不得不使用fetchedResultsController來訪問它。 – Nilesh 2011-12-21 08:26:05

+0

@Nilesh你可以幫我調用[xmpproster fetchRoaster],在其中調用委託方法來顯示花名冊的細節 – 2014-01-02 07:48:36