2013-09-30 31 views
0

我已經設置了我的應用程序設置包以使兩個文本框保存一個IP地址和端口號。但是,當我使用非硬編碼的IP地址和端口號運行我的代碼時,沒有任何反應。ios應用程序偏好設置調用

任何人都可以看到我做錯了什麼?

在我的代碼頂部,我定義了我的標識符。這些代碼在Root.plist直複製和粘貼在標識箱

#define k_ip_address @"ip_address" 
#define k_port_address @"port_number" 

然後,我連接到我有以下線的IP地址和端口號:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSString *host = [defaults objectForKey:k_ip_address];// HOST; 
uint16_t port = [defaults objectForKey:k_port_address];// PORT; 

但當我嘗試用這些修改運行我的新程序時,沒有任何反應,但是如果我恢復到硬編碼版本,我的代碼就可以正常工作。

我是否使用用戶默認值錯誤?

我Root.plist enter image description here

+0

你可以把你如何在NSUSerDefaults中存儲thoSE值的代碼? –

+0

已添加屏幕截圖 – N0xus

回答

1

存儲在plist中那些值的形象都不是,你會在看到NSUserDefaults的值。對於NSUserDefaults,您需要以編程方式存儲數據。

爲了解決你的問題,我看到兩個解決方案:

一)編程在存儲NSUserDefaults的數據和忘記的.plist:

NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults]; 
[defaults setObject:MY_IP forKey: k_ip_address]; 
[defaults synchronize]; 

B)忘掉和NSUserDefaults的寫入/讀取.plist:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Root" 
                ofType:@"plist"]; 
NSDictionary *dict = [[NSDictionary alloc] 
          initWithContentsOfFile:path]; 
+0

謝謝您的回答。第二個選擇是我想要實現的。但是,我怎樣才能將這個代碼示例與我搭配使用呢?你能舉個例子嗎? – N0xus

+0

重新獲得字典的價值,你會在那裏看到plist的價值 –

相關問題