Objective c 访问全局变量?

Objective c 访问全局变量?,objective-c,cocoa-touch,Objective C,Cocoa Touch,我使用以下代码登录到web服务并存储身份验证令牌: loginViewController.h @interface loginViewController : UIViewController<XMLRPCConnectionDelegate> @property (strong, nonatomic) IBOutlet UITextField *SSO; @property (weak, nonatomic) IBOutlet UITextField *PASS; @proper

我使用以下代码登录到web服务并存储身份验证令牌:

loginViewController.h
@interface loginViewController : UIViewController<XMLRPCConnectionDelegate>
@property (strong, nonatomic) IBOutlet UITextField *SSO;
@property (weak, nonatomic) IBOutlet UITextField *PASS;
@property (weak, nonatomic) IBOutlet UITextView *LoginError;
@property (nonatomic, retain) NSString *token;
@end


loginViewcontroller.m
#import "loginViewController.h"

@implementation loginViewController
@synthesize SSO;
@synthesize PASS;
@synthesize LoginError;
@synthesize token;

- (IBAction)coreLoginClicked:(id)sender {

    NSURL *URL = [NSURL URLWithString: @"https://somesite"];  
    XMLRPCRequest *request = [[XMLRPCRequest alloc] initWithURL: URL];
    XMLRPCConnectionManager *manager = [XMLRPCConnectionManager sharedManager];

    [request setMethod:@"systemLogin"  withParameters:[NSArray arrayWithObjects: SSO.text, PASS.text, nil]];
    [manager spawnConnectionWithXMLRPCRequest: request delegate: self];

    NSLog(@"Request body: %@", [request body]);





}

- (void)request: (XMLRPCRequest *)request didReceiveResponse: (XMLRPCResponse *)response {

    if (![response faultCode]) {
        token = [response object];
        [self performSegueWithIdentifier:@"loginSegue" sender:self];


    NSLog(@"Response object: %@", [response object]);
}
login.token的值为零。我做错了什么?这是设置和访问全局变量的错误方法吗

我一直在关注lynda.com上关于Objective-C的教程,他们就是这样做的。。但也许我错过了什么


谢谢

您正在分配一个新实例,这意味着它将为空。如果您希望能够在类中存储对象,则必须使用该实例将变量取回。

尝试通过self访问令牌:

NSLog(@"Token: %@", self.token);

您的第二个代码位执行以下操作:创建loginVC的新实例,然后检查它是否有令牌。您需要实例化您的loginVC,然后进行登录,然后它将在令牌中有一个值。然后,实例化loginVC的任何类/方法都将能够检查loginVC的实例中的令牌。

Objective-C没有全局变量。Objective-C是ANSI C的严格子集,因此实现了全局变量。但这个问题似乎与全局变量无关。@hotpaw2它是一个超集,因为它包含了C包含的所有内容以及Objective-C原语。@TomvanderWoerdt正如hotpaw所建议的,Objective-C的全局变量与C的全局变量完全相同。@Jason:谢谢你指出我的键入/交换顺序。Obj C是超集。C是子集。
NSLog(@"Token: %@", self.token);