作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为 iOS 开发应用程序时,我需要知道如何在用户验证时实例化和使用创建的对象。
我正在使用 OAuth2 方法正确实现 gtm-oauth2 框架。用户输入,查看 Web View 中显示的登录表单并正确进行身份验证。在那一刻,如文档中所述,我是这样的:
if (error != nil){
// Do whatever to control the error
}
else
{
// Authentication succeeded
// Assign the access token to the instance property for later use
self.accessToken = myAuth.accessToken;
[myAuth setShouldAuthorizeAllRequests:YES];
[self setAuth:myAuth];
// Display the access token to the user
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Authorization Succeeded"
message:[NSString stringWithFormat:@"Access Token: %@", myAuth.accessToken]
delegate:self
cancelButtonTitle:@"Dismiss"
otherButtonTitles:nil];
[alertView show];
}
稍后,在同一个 Controller 中,我使用这样的 self.auth 对象在用户通过身份验证后访问我的 API:
[request setURL:getCartsURL];
[request setValue:self.accessToken forHTTPHeaderField:@"Authorization"];
[self.auth authorizeRequest:request
completionHandler:^(NSError *error) {
NSString *output = nil;
if (error) {
output = [error description];
} else {
// Synchronous fetches like this are a really bad idea in Cocoa applications
//
// For a very easy async alternative, we could use GTMHTTPFetcher
NSURLResponse *response = nil;
NSData *data = [NSURLConnection sendSynchronousRequest:request
returningResponse:&response
error:&error];
if (data) {
// API fetch succeeded
output = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
SBJsonParser *jsonParser = [SBJsonParser new];
// Parse the JSON into an Object
id parsed = [jsonParser objectWithString:output];
NSArray *arrayResponse = [[NSArray alloc] initWithArray:parsed];
} else {
// fetch failed
output = [error description];
}
}
}];
到目前为止,我一直在使用 self.auth
对象的本地实例,如果我想从整个应用程序的任何位置全局访问该对象,那么这样做是不够的。初始 View Controller 没问题,但不是整个应用程序。
我想我可以以某种方式访问第一个 View Controller 以在我需要的任何时候获取对象。但我想我们有更好的方法让它全局实例化并从应用程序的任何位置访问。
你能帮我解决这个问题吗?
非常感谢。
最佳答案
你应该使用单例。 Here是一篇关于如何设置的好文章。
关于objective-c - iOS 和 Objective-C : How to keep an object globally,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12646948/
我是一名优秀的程序员,十分优秀!