gpt4 book ai didi

objective-c - iOS 和 Objective-C : How to keep an object globally

转载 作者:行者123 更新时间:2023-11-29 11:08:32 25 4
gpt4 key购买 nike

为 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com