ios/xcode/objective c:设置和获取会话变量[重复]
Posted
技术标签:
【中文标题】ios/xcode/objective c:设置和获取会话变量[重复]【英文标题】:ios/xcode/objective c: set and get session variable [duplicate] 【发布时间】:2015-05-03 12:09:00 【问题描述】:这不应该那么难,但我无法让它工作。 ios newb 尝试按照 Ismael here 的回答在会话实例中设置用户 ID。但无法访问其他类中的用户标识值。
这是我正在使用的代码:
Session.h
@interface IDSession : NSObject
@property (readonly, copy) NSString *userid;
+ (IDSession *)sharedInstance;
@end
Session.m
#import "IDSession.h"
@interface IDSession()
@property (readwrite,copy)NSString * userid;
@end
@implementation IDSession
+ (IDSession *)sharedInstance
static IDSession *session;
if (!session)
session = [[IDSession alloc] init];
//include this class in other class and reference userid with [IDSession sharedInstance].userid
NSString * userid = @"1";
return session;
@end
in retrieving class.
#import "session.h"
NSString *userid =[Session sharedInstance].userid;
NSLog(@"userid retrieved from session variable is %@",userid);
log中出现的值为(null)
提前感谢您的任何建议。
【问题讨论】:
顺便说一句,在进行单例时,通常会使用 dispatch_once,从而产生线程安全的单例。请参阅 ***.com/q/9119042/1271826 这根本不是重复的......但仇恨者将成为仇恨者。 【参考方案1】:您正在设置一个本地 userid
变量,而不是单例的属性。
而不是:
NSString *userid = @"...";
你想要:
session.userid = @"...";
【讨论】:
成功了。我不完全理解单例的局部变量和属性之间的区别,但我会研究一下。以上是关于ios/xcode/objective c:设置和获取会话变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章