2012-02-24 19 views
0

我試圖在xCode中編程,但它對我來說是新的。我需要爲ios 5編寫簡單的webview應用程序。我的應用程序必須加載url,每次打開時都會在設置中定義。我創建Xcode項目,並添加settings.bundle它:如何在xCode 4.2的settings.bundle中加載url

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>PreferenceSpecifiers</key> 
    <array> 
     <dict> 
      <key>DefaultValue</key> 
      <string>http://192.168.0.4/portal.aspx</string> 
      <key>Key</key> 
      <string>serverName</string> 
      <key>KeyboardType</key> 
      <string>Alphabet</string> 
      <key>Title</key> 
      <string>Server</string> 
      <key>Type</key> 
      <string>PSTextFieldSpecifier</string> 
     </dict> 
    </array> 
    <key>StringsTable</key> 
    <string>Root</string> 
</dict> 
</plist> 

我的代碼:

(void)viewDidLoad 
{ 
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    server = [defaults objectForKey:@"serverName"];  
    if(server==nil) 
     [email protected]"http://google.com";  

    [super viewDidLoad]; 

    [proView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString: server]]]; 
    proView.scalesPageToFit= YES; 
} 

,但我的應用始終啓動谷歌網頁。爲什麼服務器是零?和服務器必須有默認值?哪裏不對?

回答

0

根據我的理解,您必須手動設置默認值,否則它們爲空。試試這個:

-(void)viewDidLoad { 

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

NSString *server = [defaults objectForKey:@"serverName"]; 
NSLog(@"%@", server); // <-- should print null 

//If the default value is null, set a value 
if(server==nil) { 
[defaults setObject:@"http://192.168.0.4/portal.aspx" forKey:@"serverName"]; 
//change your string to reflect the changes. 
server = [defaults ObjectForKey:@"serverName"]; 
NSLog(@"%@", server); // <-- should print your URL 
} 

[defaults synchronize]; //Saves defaults. 

[super viewDidLoad]; 

[proView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString: server]]]; 
proView.scalesPageToFit= YES; 

}