2012-11-19 38 views
0

在我的iPhone應用程序中,我目前在plist中存儲了約1000個英語單詞,並從那裏獲取它們(以及第二個匹配1000個單詞的列表)。iPhone,Store 1000預製字

這工作很好,但它有點笨拙。我對CoreData有一點經驗,我可以看到它會如何幫助我,因爲我可以給每個單詞對象,兩個單詞(匹配的),然後有一個與單詞相關的組對象,這樣我就可以對它們進行分組管理我有點認爲它是有道理的。

但是,有了這麼多的數據,會取得緩慢?有沒有更好的辦法?預填充核心數據是否是一個好主意(所以用戶使用應用程序時存在這些詞彙,他們不需要添加任何內容)?

我只需要找到一個更好的解決方案。

只要是明確的,這就是我需要實現: - 有大約一個列表。 1000字(2000如果你包括對) - 每個單詞需要有一個合作的單詞(所以他們成對) - 我需要將這些硬編碼到應用程序,所以它們存在的用戶從單詞去。 - 當然,我需要最簡單的管理解決方案,因爲任何人都願意考慮(當然是合理的)。

任何幫助非常感謝,謝謝。

回答

0

我真的不明白爲什麼使用核心數據將是遠遠超過一個的plist容易 - 無論是你必須以某種方式填充列表。在我看來,你可以將plist硬編碼並將其加載爲NSDictionary。

或者,如果你想要的東西更容易編輯,你總是可以只用Excel做一個逗號分隔值文件(CSV),並創建它的方式。然後,您可以在您的包csv文件和應用程序啓動時創建一個簡單的方法來加載文件,把它變成所有鍵值的一個NSArray:

NSArray *keysAndValues = [myString componentsSeparatedByString:@","]; 
NSMutableArray *words = [NSMutableArray arrayWithCapacity:(keysAndValues.count/2)]; 
for (int i = 0; i < keysAndValues.count; i += 2) { 
    [words addObject:[NSDictionary dictionaryWithObject:[keysAndValues objectAtIndex:i+1] forKey:[keysAndValues objectAtIndex:i]; 
} 
+0

感謝您的建議,但也許稍簡化一種方法。我之所以問CoreData的原因是因爲我需要保留其他參考文獻,比如詞組,並且更重要的是對每個詞我已經實現,但是在使用plist的同時仍然參考了正確的單詞的問題。 –

0

在覈心數據中有1000對單詞的性能應該不成問題。 OTOH,也不會是簡單的文件或SQLite數據庫。

我建議做基於什麼是你最容易維護,並在一定程度上,應用程序將如何使用他們的決定。 (也就是說,如果你不使用這些對作爲對象,也許查表是一個比核心數據更合適。)