我试图像这样继承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。该应用程序可以工作并创建一个新用户,但我真的不明白为什么我会收到此警告。
不兼容的指针类型初始化&#39;用户*&#39;表达的 输入&#39; PFUser * __nonnull&#39;
答案 0 :(得分:2)
我假设您未在user
课程中实施User
方法。我建议您覆盖user
方法以正确返回User
类的实例。
在你的情况下发生了什么:
您可以像这样创建一个User
实例
User *user = [User user];
但是你的user
类中没有方法User
所以你总是回到PFUser
类来处理这个调用,你得到一个PFUser
的实例这就是你得到警告的原因。
覆盖user
课程中的User
方法将解决问题。这样做:
+(User*)user {
return (User*)[PFUser user];
}
希望这有帮助!