将 UITextField 附加到 NSUserDefaults
Attaching UITextField to NSUserDefaults
我是初学者,我正在尝试弄清楚如何将文本从文本字段连同坐标上传到服务器,但我需要将文本字段添加到 userdefaults。
UITextfield 在我的 ViewController 中,而服务器的坐标和 post 在一个单独的对象中 class。
教程或示例代码将非常有帮助。
下面,我附上了我用来上传坐标的相关代码。
我需要帮助将另一个 class 中的 UITextfield 中的文本添加和上传到下面的代码。
Singleton.m
@implementation Singleton {
CLLocation *location;
CLLocationManager *locationManager;
NSMutableData *responseData;
}
- (id)init {
if (self = [super init]) {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setDouble:location.coordinate.latitude forKey:@"latitude"];
[userDefaults setDouble:location.coordinate.longitude forKey:@"longitude"];
[userDefaults synchronize];
}
return self;
}
- (void) timerDidFire:(NSTimer *)timer
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if (([userDefaults doubleForKey:@"latitude"] != location.coordinate.latitude) || ([userDefaults doubleForKey:@"longtitude"] != location.coordinate.longitude)) {
NSMutableURLRequest *request = [NSMutableURLRequest
requestWithURL:[NSURL URLWithString:@"http://setslocation.php"]];
NSDictionary *requestData = [[NSDictionary alloc] initWithObjectsAndKeys:
[NSString stringWithFormat:@"%f", location.coordinate.longitude], @"longitude",
[NSString stringWithFormat:@"%f", location.coordinate.latitude], @"latitude",
nil];
NSError *error;
NSData *postData = [NSJSONSerialization dataWithJSONObject:requestData options:0 error:&error];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];
[NSURLConnection connectionWithRequest:request delegate:self];
[userDefaults setDouble:location.coordinate.latitude forKey:@"latitude"];
[userDefaults setDouble:location.coordinate.longitude forKey:@"longtitude"];
[userDefaults synchronize];
}
}
首先将您的文本字段值保存到 NSUserDefaults 并同步。您可以从 NSUserDefaults 获取项目中任何位置的值。
设置如下值:
[[NSUserDefaults standardUserDefaults] setObject:@"your textfield value" forKey:@"your key name"];
[[NSUserDefaults standardUserDefaults] synchronize];
获取值:
NSLog(@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"your key name"]);
确保你写相同的键名。
我是初学者,我正在尝试弄清楚如何将文本从文本字段连同坐标上传到服务器,但我需要将文本字段添加到 userdefaults。
UITextfield 在我的 ViewController 中,而服务器的坐标和 post 在一个单独的对象中 class。
教程或示例代码将非常有帮助。
下面,我附上了我用来上传坐标的相关代码。
我需要帮助将另一个 class 中的 UITextfield 中的文本添加和上传到下面的代码。
Singleton.m
@implementation Singleton {
CLLocation *location;
CLLocationManager *locationManager;
NSMutableData *responseData;
}
- (id)init {
if (self = [super init]) {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setDouble:location.coordinate.latitude forKey:@"latitude"];
[userDefaults setDouble:location.coordinate.longitude forKey:@"longitude"];
[userDefaults synchronize];
}
return self;
}
- (void) timerDidFire:(NSTimer *)timer
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if (([userDefaults doubleForKey:@"latitude"] != location.coordinate.latitude) || ([userDefaults doubleForKey:@"longtitude"] != location.coordinate.longitude)) {
NSMutableURLRequest *request = [NSMutableURLRequest
requestWithURL:[NSURL URLWithString:@"http://setslocation.php"]];
NSDictionary *requestData = [[NSDictionary alloc] initWithObjectsAndKeys:
[NSString stringWithFormat:@"%f", location.coordinate.longitude], @"longitude",
[NSString stringWithFormat:@"%f", location.coordinate.latitude], @"latitude",
nil];
NSError *error;
NSData *postData = [NSJSONSerialization dataWithJSONObject:requestData options:0 error:&error];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:postData];
[NSURLConnection connectionWithRequest:request delegate:self];
[userDefaults setDouble:location.coordinate.latitude forKey:@"latitude"];
[userDefaults setDouble:location.coordinate.longitude forKey:@"longtitude"];
[userDefaults synchronize];
}
}
首先将您的文本字段值保存到 NSUserDefaults 并同步。您可以从 NSUserDefaults 获取项目中任何位置的值。
设置如下值:
[[NSUserDefaults standardUserDefaults] setObject:@"your textfield value" forKey:@"your key name"];
[[NSUserDefaults standardUserDefaults] synchronize];
获取值:
NSLog(@"%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"your key name"]);
确保你写相同的键名。