单身人士的持久性属性

时间:2014-06-17 20:01:01

标签: ios objective-c singleton

只要我在 ViewControllerA ,这样就可以了:

[User sharedUser].email = @"mail@mail.com";
NSLog(@"%@ %@", [User sharedUser].email, [User sharedUser]); // mail@mail.com <User: 0x8d83220>

但如果我在 ViewControllerB 后切换,则电子邮件为空

NSLog(@"%@ %@", [User sharedUser].email, [User sharedUser]); // null <User: 0x8d83220>

为什么会出现这样的错误?

User.m

@implementation User
+ (instancetype)sharedUser
{
    static User *sharedUser = nil;

    if (!sharedUser) {
        sharedUser = [[self alloc] init];
    }

    return sharedUser;
}
@end

User.h

@interface User : NSObject
@property (nonatomic, weak) NSString *email;
@end

0 个答案:

没有答案