标签: pfuser

iOS与Parse.PFUser.currentuser()没有被缓存.应用程序重启后返回nil

我正在用快速的Parse构建一个应用程序.应用程序停止并再次运行后,PFUser.currentuser()始终返回nil.我正在使用iOS模拟器并启用了本地数据存储.我正在使用这样的东西 -

if PFUser.currentuser() == nil {
// Perform segue to login screen
}
Run Code Online (Sandbox Code Playgroud)

登录我正在使用

PFUser.loginWithUsernameInBackground(...)
Run Code Online (Sandbox Code Playgroud)

当前用户保持不变,直到应用程序重新启动,之后它将重置为nil.我甚至试图固定当前用户,但它不起作用.如何检查当前用户是否在本地缓存.任何帮助,将不胜感激.谢谢.

login ios parse-platform swift pfuser

10
推荐指数
1
解决办法
646
查看次数

Swift Array.contains()不调用PFUser子类的Equatable函数

我有一个PFUser的子类- MYUser类,带有Equatable函数的实现,用于以这种方式比较objectIds:

func ==(left: MYUser, right: MYUser) -> Bool {
    return left.objectId == right.objectId
}
Run Code Online (Sandbox Code Playgroud)

但是当我调用Array.contains()方法时,它不会调用Equatable函数的这个实现,这会导致不正确的结果.例如,这里:

let hasUser = self.selectedUsers.contains(currentUser)
Run Code Online (Sandbox Code Playgroud)

如果selectedUsers数组包含不同的内存对象但是与currentUser中的 objectId相同,则hasUser变为false.

有趣的是,Equatable函数实现在直接使用中被调用.这里:

var hasUser = false
for itUser in self.selectedUsers {
  if itUser == currentUser {
    hasUser = true
    break
  }
}
Run Code Online (Sandbox Code Playgroud)

成功调用了==运算符,并且hasUser具有不同内存对象的正确值,但具有相同的objectId

它可能是什么原因?

UPDATE.这是MYUser课程:

class MYUser: PFUser {

    // MARK: - Parse Object

    @NSManaged var avatarFile: PFFile?
    @NSManaged …
Run Code Online (Sandbox Code Playgroud)

arrays parse-platform swift pfuser

8
推荐指数
1
解决办法
1368
查看次数

Parse中的主要错误:[PFUser currentUser]死锁

Parse社区已经多次提出PFUser通过解析后台调用从线程争用中死锁的问题,但是Parse选择不在框架中处理这个巨大的bug.有谁知道这个问题的解决方法?

关于这个问题的其他明显报告:

https://developers.facebook.com/bugs/649920188390439/
https://www.parse.com/questions/ios-api-apparent-deadlock-in-main-thread-v1213
https://www.parse.com/questions/occasional-freezing-at-pfuser-currentuser
https://www.parse.com/questions/deadlock-on-pfuser-currentuser-ios-sdk-1219
Run Code Online (Sandbox Code Playgroud)

crash multithreading deadlock parse-platform pfuser

7
推荐指数
0
解决办法
588
查看次数

调用[PFFacebookUtils initializeFacebook]时解析崩溃 - semaphore_wait_trap

自从最新的Parse版本(v1.6.3)以来,我的应用程序在启动时卡住了,它遇到的最后一个断点是[PFFacebookUtils initializeFacebook];如果我点击暂停并查看调试器,堆栈跟踪如下所示:

在此输入图像描述

我正在打电话[PFFacebookUtils initializeFacebook]- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions正如所建议的那样.

通过Google搜索semaphore_wait_trap问题,它似乎与Core Data中的后台线程(?)发生冲突有关.但我已经尝试评论我的所有后台Parse查询,它仍然会发生.

我尝试更新pods(这是在更新之前发生的,偶然).我也可以从干净安装运行应用程序,直到我登录到Facebook,此时每次尝试启动时都会发生崩溃.查询时PFUser似乎返回正常.我也清除了我的整个数据库,但它没有什么区别.

任何人都知道可能会发生什么?

semaphore objective-c ios parse-platform pfuser

7
推荐指数
1
解决办法
1057
查看次数

使用[PFFacebookUtils initializeFacebookWithApplicationLaunchOptions:launchOptions](semaphore_wait_slow陷阱)解析自Facebook 4.0.x以来的登录挂起

自从更新Facebook到v4.0.x和最新的Parse库以来,我的应用程序正在挂起,似乎在尝试登录用户时.

我的堆栈跟踪如下所示:

在此输入图像描述

我之前遇到过类似的问题,在这里回答:调用[PFFacebookUtils initializeFacebook]时解析崩溃 - semaphore_wait_trap

然而,该解决方案不再有效,因为它似乎[PFUser currentUser]已被替换,[PFUser(Private) _getCurrentUserWithOptions:]并且[BFTask(Private) waitForResult:withMainThreadWarning:]它被卡住了.

在我的应用程序中,我将PFUser子类化为一个名为MPLUser的类,并重写了用户方法.不确定这可能与问题有关吗?

+ (MPLUser *)user
{
    return (MPLUser *)[PFUser user];
}
Run Code Online (Sandbox Code Playgroud)

一旦开始发生,就无法启动应用程序.但是,我通常设法在锁定开始之前启动应用程序几次.它通常发生在崩溃之后...

我正在使用pod'ParseFacebookUtilsV4'并将所有库更新到最新版本.

更新:

这是来自另一个线程的更多堆栈跟踪,似乎正在尝试登录:

在此输入图像描述 在此输入图像描述

我按以下顺序初始化Parse和Facebook.如果我拨打电话,它会崩溃:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [self initDefaults];
    [self initialiseApplicationSpecifics];
    [self setupParseWithOptions:launchOptions];
    [self enableCrashReporting];
    [self setupIAPs]; 
//etc... 
}


- (void)initialiseApplicationSpecifics
{
    [Flurry setCrashReportingEnabled:YES];
    [self registerParseSubclasses];
    [ParseCrashReporting enable];
    [Parse enableLocalDatastore];
#ifdef MPL
    [Parse setApplicationId:@"xxxyyy"
                  clientKey:@"xxxyyy"];
    [Flurry startSession:@"xxxyyy"];
#elif MGM
    [Parse setApplicationId:@"yyyxxx"
                  clientKey:@"yyyxxx"];
    [Flurry startSession:@"yyyxxx"];
#endif
}

- (void)setupParseWithOptions:(NSDictionary *)launchOptions …
Run Code Online (Sandbox Code Playgroud)

objective-c parse-platform pfuser pffacebookutils bftask

7
推荐指数
1
解决办法
538
查看次数

用户与协议PFSubclassing的冗余一致性(Swift 2.0)

在此输入图像描述

我刚刚将Swift 1.2代码迁移到Swift 2.0.

此代码以前工作正常.但现在有一个错误说

Redundance Conformance of User to Protocol PFSubclassing (Swift 2.0)
Run Code Online (Sandbox Code Playgroud)

可能是什么导致了这个?

ios parse-platform pfuser pfsubclassing swift2

7
推荐指数
1
解决办法
274
查看次数

访问[PFUser currentUser]导致死锁

当使用解析iOS sdk v1.2.20时,多个线程试图访问[PFUser currentUser]时偶尔会出现死锁

看起来每当我进行PFQuery调用或PFCloud函数调用时,这些操作也会访问[PFUser currentUser],因此如果从不同的线程进行查询,则会增加死锁的可能性.

其他人找到了解决方案,我怀疑解析甚至意识到问题,因为他们很久以前就关闭了这些相关问题:https: //www.parse.com/questions/parse-locking-up-the-main-thread-可能死锁 这一个:https: //www.parse.com/questions/occasional-freezing-at-pfuser-currentuser

parse-platform pfuser

6
推荐指数
1
解决办法
370
查看次数

解析用户在某些应用程序重新启动时自动随机注销

我一直听到一些使用我的应用程序的人报告说他们被随机注销了他们的 PFUser 帐户 ( [PFUser currentUser] == nil)。直到几周前,我一直发现一旦用户登录,他们会在同一设备上无限期地保持登录状态,所以我不知道从哪里开始导致注销。

不幸的是,细节并不多,但我发现该问题目前仅在 iOS 用户中得到确认。此外,一些 iOS 用户因无效会话令牌而收到代码 209 的错误,但这些用户不会被自动注销。

任何人都对我应该在哪里寻找问题有任何指示?谢谢!

parse-platform pfuser

6
推荐指数
0
解决办法
64
查看次数

iOS - 解析当前用户获取无法正常工作

我在iOS/Swift中使用parse,在我的PFUser类中,我有一个包含指向另一个PFObject类的指针数组的字段.

当我通过数据浏览器更新字段时,在PFUser.currentuser上调用fetch不会检索此更新.但是,所有其他非数组字段都会检索更新.

这只是Parse的一个问题吗?有没有人知道一个解决方法?

ios parse-platform swift pfuser

5
推荐指数
1
解决办法
793
查看次数

更新缓存的PFUser currentUser?

使用Parse登录时,[PFUser currentUser]会在设备上本地缓存.我有一个问题,即存储在该用户对象中的一些自定义数据可以在应用程序之外更新,因此如果用户仍然登录,则调用[PFUser currentUser]将获得缓存的用户对象,因此它将不具有新数据.要更新缓存用户的对象,用户必须注销并重新登录.

如何在不丢弃会话的情况下以编程方式更新/重新获取当前用户?

ios parse-platform pfuser

3
推荐指数
1
解决办法
1031
查看次数