【问题标题】:PFUser currentuser not available in NSObject subclassPFUser currentuser 在 NSObject 子类中不可用
【发布时间】:2016-09-26 22:08:52
【问题描述】:

我创建了一个自定义 NSObject 子类,因此我可以调用类似 MyObject1 *shared = [GlobalObjects myObject1];如此处接受的答案中所述:where to store "global" objects in iOS

我已经设置好了,它可以正确调用,但由于某种原因,它不允许我访问 PFUser *currentUser = [PFUser currentUser],因为它返回 null。在我调用 GlobalObjects myObject1 之前,我可以毫无问题地访问用户详细信息,但是一旦它跳转到我的子类,它就为空。我已经包含 Parse sdk 并且没有错误,所以我无法弄清楚这里发生了什么。

有人对我可能做错了什么有指导吗?

供参考:

初始视图:

currentUser = [PFUser currentUser];
NSLog(@"%@",currentUser); // Outputs correctly
PFObject *settings = [GlobalObjects getSettings];

.h

#import <Foundation/Foundation.h>
#import <Parse/Parse.h>

@interface GlobalObjects : NSObject

+(void)load;
+(PFObject*)getSettings;

@end

.m

#import "GlobalObjects.h"
#import <Parse/Parse.h>

static PFObject* _getSettings = nil;

@implementation GlobalObjects

+(void)load {
    PFUser *currentUser = [PFUser currentUser];
    NSLog(@"%@",currentUser); // Returns null always (I need to get the user here)
}
+(PFObject*)getSettings {
    return _getSettings;
}

@end

【问题讨论】:

    标签: ios objective-c parse-platform


    【解决方案1】:

    至于我的问题 - 在 +(void)load 方法中。从文档到 +[NSObject load] - 初始化顺序:

    1. 您链接到的任何框架中的所有初始化程序。
    2. 图片中的所有 +load 方法。
    3. 图像中的所有 C++ 静态初始化程序和 C/C++ 属性(构造函数)函数。
    4. 链接到您的框架中的所有初始化程序。

    所以您试图在第 2 步获取 PFUser 实例,但 Parse 框架只会在第 4 步正确初始化。所以只需将您的调用从 load 方法移到某个地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多