Iphone 如何在Cocoa Touch中处理用户名?
我有一个登录视图控制器,它使用php/mysql/POST函数来验证用户是否被授权。一旦获得授权,他们就会进入应用程序 我的问题是,一旦他们进入应用程序,我如何“抓取”他们的用户名,并在他们进入我的应用程序时将其附加到他们上传到我的数据库的任何数据中 我假设我将它附加到当前的NSMutableData字符串中,该字符串包含他们上载的文本块,但是我如何“抓取”这个用户名来附加它呢 假设我有两个视图控制器“login”和“main”,并且内容上载到“main”,我如何将用户名从“login”视图传递到“main”视图,以便在用户点击上载按钮(位于主视图上)时将其追加 编辑:我希望检索此用户名的位置如下:Iphone 如何在Cocoa Touch中处理用户名?,iphone,ios,cocoa-touch,Iphone,Ios,Cocoa Touch,我有一个登录视图控制器,它使用php/mysql/POST函数来验证用户是否被授权。一旦获得授权,他们就会进入应用程序 我的问题是,一旦他们进入应用程序,我如何“抓取”他们的用户名,并在他们进入我的应用程序时将其附加到他们上传到我的数据库的任何数据中 我假设我将它附加到当前的NSMutableData字符串中,该字符串包含他们上载的文本块,但是我如何“抓取”这个用户名来附加它呢 假设我有两个视图控制器“login”和“main”,并且内容上载到“main”,我如何将用户名从“login”视图传递
-(IBAction)uploadImage:(id)sender {
NSLog(@"uploadImage");
//and for retrieval
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *authenticatedUsersName = [defaults objectForKey:@"username"];
NSMutableString *postString = [NSMutableString stringWithString:kPostURL];
[postString appendString:[NSString stringWithFormat:@"&%@=%@", kText, textField.text]];
[postString setString:[postString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
如果您不关心用户名的安全性,为什么不在成功验证后将用户名存储在
NSUserDefaults
中?你可以这样做
//upon authentication...
NSUserDefault *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"username"] == nil) //we haven't saved anything yet
[defaults setObject:authenticatedUsersName forKey:@"username"];
[defaults synchronize]; //saves the new defaults
//and for retrieval
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *authenticatedUsersName = [defaults objectForKey:@"username"];
我认为这种设计给了你更多的灵活性,因此你可以在你的应用程序的所有视图控制器中使用用户名
重新编辑后
为什么不能在函数中的某个地方格式化字符串?确切的post url格式是什么
-(IBAction)uploadImage:(id)sender {
NSLog(@"uploadImage");
//and for retrieval
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *authenticatedUsersName = [defaults objectForKey:@"username"];
//MY CHANGES, CAN YOU DO EITHER OF THESE?
NSMutableString *postString = [NSMutableString stringWithString:[NSString stringWithFormat:@"%@-%@", kPostURL, authenticatedUsersName];
[postString appendString:[NSString stringWithFormat:@"&%@=%@&%@", kText, textField.text, authenticatedUsersName]];
[postString setString:[postString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
}
具有全局可用变量的另一种方法是使用单例类 这比使用NSUserDefaults的卷积解决方案稍微困难一些,但它更适合某些用例 在以下位置有一个很好的教程:
今晚我将尝试此功能,并会告诉您我是否能够将其成功插入/改编到当前代码中。看起来很简单,谢谢你的快速回复!如果成功,我一定会在这里发表评论并点击复选标记,让你知道我有多么感激你。否则,我可能会有一些简短的后续项目来成功地将其缝合在一起……)哈,这是我在这里听到的最礼貌的评论。很高兴为您提供帮助,欢迎使用iOS开发,希望您喜欢:-D.Hi卷积。所以,我想我几乎成功了,但我遇到了一个小麻烦。我需要“检索”用户名的位置在一个名为“uploadImage”的iAction中。这包含一个NSMutableString,我使用它将一些其他变量传递到.php文件以用于sql存储。我还需要传递authenticatedUsersName,但我无法在NSMutableString中附加NSString。我已经更新了上面的问题,以反映我想在哪里添加“用户名”。你能帮忙吗?帖子的url格式是“。。。。我需要结尾的问号吗?或者你的格式需要问号吗?很乐意帮助Mike,我希望你将来的所有询问都能像这个一样有帮助,你也和我一样喜欢iOS开发:-D。