2016-03-23 21 views
2

我有以下不變的代碼加載一個值-defined設置並分配一個值,該值可以在運行時或歸檔期間替換MyUrl const的值?iOS版的XCode:</p> <pre><code>static NSString* const MyUrl = @"www.myurl.com"; </code></pre> <p>是否有可能在所有創建用戶:如何從構建設置一個用戶定義的設置在運行時

我的情況如下:我有一個項目與各種目標。每個目標都指向代碼中的一個不同的URL。如果我可以通過用戶定義的設置來管理URL,而不是每次更改目標時都必須更改代碼,那將是非常好的。

+0

是否要將設置包含在應用程序中或由用戶輸入? – Eiko

+0

該設置將包含在應用程序中。 – user1309226

回答

1

考慮使用的info.plist用於存儲這樣的值。

0

不,您不能更改const變量的值。

您可以通過簡單的NSString *myURL = @"www.url.com"更改URL字符串的值;

並使用AppDelegate中的全局變量並使用來自項目中任何位置的全局變量。

+1

考慮使用info.plist來存儲這些值。 –

+0

@ArikSegal請添加您的建議作爲答案,我會將其標記爲答案 – user1309226

-3

我想你需要使用數據庫或任何其他來源的應用程序。只要更改了URL字符串,您就可以在代碼中使用NSString變量。您可以根據需要使用parse(但是,Parse將在明年停止其服務,但有大量免費的在線DB可供您使用)。使用此方法,您無需更改代碼即可更新URL字符串。我希望我能得到你需要的東西。

+0

奇怪的是我的答案有「 - 」。當我查看其他答案和問題時,我需要問「在發佈應用程序時如何更改URL字符串而不釋放新的二進制文件?」。這兩個問題都不對,或者我在這裏錯過了一些東西。如果我檢查答案,問題似乎很奇怪。 「用戶定義的」短語與我所知道的不同... – icould

+0

1.這是關於交換目標並且在發佈新的二進制文件之前。 2.用戶不是指「最終用戶」或「應用程序用戶」,在這種情況下,這意味着構建目標,因爲目標是使用設置的人。 –

0

您可以使用預處理器宏來達到此目的。轉到Xcode>項目>目標>構建設置>預處理器宏。然後爲每個構建配置(調試,發佈等)添加一個目標特定的宏。在源代碼中,您現在可以通過使用#ifdef引用宏來識別您的目標。

實施例:

下面的圖像示出了在目標宏的聲明構建設置 -

enter image description here

相關問題