Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/109.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ios/xcode/objective c:设置并获取会话变量_Ios_Singleton_Session Variables_Userid - Fatal编程技术网

ios/xcode/objective c:设置并获取会话变量

ios/xcode/objective c:设置并获取会话变量,ios,singleton,session-variables,userid,Ios,Singleton,Session Variables,Userid,这应该不难,但我不能让它工作。IOS新手尝试在会话实例中根据Ismael的回答设置用户ID。但无法访问其他类中的userid值 以下是我正在使用的代码: Session.h @interface IDSession : NSObject @property (readonly, copy) NSString *userid; + (IDSession *)sharedInstance; @end Session.m #import "IDSession.h" @interface IDSe

这应该不难,但我不能让它工作。IOS新手尝试在会话实例中根据Ismael的回答设置用户ID。但无法访问其他类中的userid值

以下是我正在使用的代码:

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);
日志中显示的值为(null)


提前感谢您的建议。

您正在设置一个本地
用户ID
变量,而不是singleton的属性

而不是:

NSString *userid = @"...";
你想要:

session.userid = @"...";

这就成功了。我并不完全理解局部变量和singleton属性之间的区别,但我将对此进行研究。顺便说一句,在执行singleton时,通常会使用dispatch_一次,从而生成线程安全的singleton。参见stackoverflow.com/q/9119042/1271826这根本不是重复的……但仇恨者将是仇恨者。