2009-12-11 82 views
0

我可以在iPhone應用程序中使用哪些代碼來獲取和設置我編寫的另一個應用程序的設置? (最好使用NSUserDefaults)如何使用其他應用程序的設置

+0

單擊添加到看到幾個答案,如http中的「NSUserDefaults的」標籤://計算器。 com/questions/1868788/can-other-programs-read-my-nsuserdefaults-settings – cdespinosa 2009-12-11 08:00:00

回答

5

你根本無法做到這一點。每個應用程序都安裝到它自己的文件夾中,並被賦予其自己的唯一用戶標識。包含這些設置的文件位於其他應用程序的文件夾中,並且其權限設置爲其他應用程序的文件。訪問數據的唯一方法是使用與其他應用程序相同的應用程序標識符,在這種情況下,安裝應用程序將覆蓋舊的應用程序。

編輯:
當問題問要做到這一點NSUserDefaults的使用,特別是鑑於該解決方案。對於更新的問題,所提供的鑰匙串方法或服務器方法都是合理的。

5

你不會能夠與NSUserDefaults的拉這一關。

鑰匙串,而在其C-內斯有點麻煩,比API NSUserDefaults的要有限得多,可能讓你做到這一點。如果您可以將需要在應用程序之間共享的任何內容序列化爲幾個字符串,則可能值得嘗試。

iPhone OS 3.x Release Notes

現在可以爲你分擔你創建多個應用程序之間的鑰匙串項。共享項目可以讓同一套件中的應用程序更輕鬆地進行互操作。例如,您可以使用此功能共享用戶密碼或其他可能需要您分別從每個應用程序提示用戶的元素。

共享鑰匙串項目涉及您的應用程序二進制文件設置適當的待遇。使用Xcode,您必須創建一個Entitlements屬性列表文件,其中包含您的應用程序支持的權利。 iPhone開發指南中介紹了創建此文件的過程。有關您可以配置的權利的信息,請參閱Keychain Services Reference中的SecItemAdd功能的說明。

在運行時訪問共享的項目包括使用Keychain服務編程接口,開發過程中設置了訪問組。有關如何訪問鑰匙串的信息,請參閱鑰匙串服務編程指南。

這裏的Buzz Anderson's Simple iPhone Keychain Code。您可以使用它將鑰匙/值對作爲字符串存儲在鑰匙串中。這並不多,但也許比沒有好。有關更多信息,請參見Apple's Keychain Programming Guide

0

你可以有一個應用程序將數據發送到服務器,那麼其他應用程序可以從服務器獲取數據。

你不能做到這一點NSUserDefaults的使用,但它可以做到的。

0

您可以使用共享剪貼板。它不安全,但兩個應用程序都可以從同一個剪貼板讀取和寫入。您只需創建一個特定於應用程序的UIPasteboard。查看Apple開發人員網站上的UIPasteboard類參考以獲取更多信息。

--Mike

0

你一定要看看UIPasteboard,所建議的 - 你可以創建你所創建(雖然什麼都不會使用它們停止其他應用的應用中使用新的紙板,但人們真不可能)。 UIPasteboard通過重新啓動/重新啓動保持不變 - 直到創建應用程序被刪除後纔會存在。

你也可以看看在SwapKit libary(這看起來非常酷):

http://infinite-labs.net/swapkit/

+0

更確切地說:您可以通過SwapKit發佈一個「清單」(應用程序註冊),以便其他SwapKit應用程序可以看到。這通常是一個包含類似於應用程序綁定之類的東西的靜態字典,但您可以添加自定義密鑰,只要它們不以「ILApp」開頭即可。 (使用[ILSwapService registerWithAttributes:(dict)update:YES]以編程方式更改)。 〜SwapKit作者。 – millenomi 2010-02-12 08:45:00

+0

...(和[ILSwapService registrationForApplicationWithIdentifier:]來讀取。API文檔:http://infinite-labs.net/swapkit/docs/api/interface_i_l_swap_service.html) – millenomi 2010-02-12 08:55:40

相關問題