【问题标题】:How to load url from settings.bundle in xCode 4.2如何从 xCode 4.2 中的 settings.bundle 加载 url
【发布时间】:2012-02-24 10:46:48
【问题描述】:

我正在尝试在 xCode 中编程,但这对我来说是新的。我需要为 ios 5 编写简单的 webview 应用程序。我的应用程序必须在每次打开时加载设置中定义的 url。我创建 xCode 项目并向其添加 settings.bundle:

<?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)
        server=@"http://google.com";    

    [super viewDidLoad];

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

但我的应用程序总是启动谷歌页面。为什么服务器为零?服务器必须有默认值吗?怎么了?

【问题讨论】:

    标签: xcode settings.bundle


    【解决方案1】:

    据我了解,您必须手动设置默认值,否则它们为空。试试这个:

    -(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;
    
    }
    

    【讨论】:

      猜你喜欢
      • 2012-04-05
      • 2014-04-25
      • 2012-03-09
      • 2012-01-22
      • 1970-01-01
      • 2012-01-09
      • 2011-05-20
      • 2011-12-08
      • 1970-01-01
      相关资源
      最近更新 更多