Как загрузить URL из settings.bundle в xCode 4.2
Я пытаюсь программировать в xCode, но для меня это ново. Мне нужно написать простое webview-приложение для ios 5. Мое приложение должно загружать 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;
}
но мое приложение всегда запускает страницу Google. Почему сервер ноль? А сервер должен иметь значение по умолчанию? что случилось?
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;
}