2012-02-24 16 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; 

}