簡體   English   中英

子類化PFUser

[英]Subclassing PFUser

我試圖像這樣子類PFUser:

//  User.h

#import <Parse/Parse.h>

@interface User : PFUser <PFSubclassing>

@property (nonatomic, copy) NSString *userUsername;
@property (nonatomic, copy) NSString *userPassword;
@property (nonatomic, copy) NSString *userEmail;

- (void)signUpUser;

@end

//  User.m

#import "User.h"
#import <Parse/PFObject+Subclass.h>

@implementation User

@dynamic userUsername;
@dynamic userPassword;
@dynamic userEmail;

- (void)signUpUser {
    [self signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
        if (!error) {
            // Hooray! Let them use the app now.
            NSLog(@"Success");
        } else {
            NSString *errorString = [error userInfo][@"error"];   // Show the errorString somewhere and let the user try again.
            NSLog(@"Error: %@", errorString);
        }
    }];
}

@end

然后,執行此操作以創建一個新用戶:

#pragma mark - IBActions

- (IBAction)signUpButtonClicked:(UIButton *)sender {
    // Sign up user with text from textfields.
    [self signUpUser:self.usernametextField.text password:self.passwordTextField.text email:self.emailTextField.text];
}

#pragma mark - Private

- (void)signUpUser:(NSString *)usernameString password:(NSString *)passwordString email:(NSString *)emailString {
    // Create a new user to sign up.
    User *user = [User user];
    user.username = usernameString;
    user.password = passwordString;
    user.email = emailString;
    [user signUpUser];
}

但是我為什么要得到這個? 我忘記了某些信息還是不是以正確的方式對PFUser進行了子類化。 該應用程序可以正常工作並創建一個新用戶,但我真的不明白為什么收到此警告。

使用類型為'PFUser * __nonnull'的表達式初始化'User *'的不兼容指針類型

我假設您尚未在User類中實現user方法。 我建議您重寫user方法以正確返回User類的實例。

在您的情況下,您正在發生的事情:您可以這樣創建一個User實例

User *user = [User user];

但是,您的User類中沒有方法user ,因此您總是退回到PFUser類來處理此調用,並且您獲得PFUser的實例,因此得到警告。

User類中重寫user方法將解決此問題。 這樣做:

+(User*)user {
    return (User*)[PFUser user];
}

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM