解析错误iOS [无法识别的选择器发送到实例]

时间:2015-11-03 03:02:39

标签: objective-c parse-platform ios9

我有一个应用程序保存要解析的图像,它包含第一个VC中的集合视图和一个详细视图控制器,您可以通过UIImagePickerController添加图片。我曾经在Objective-C中使用过一些解析,但不断收到此错误

// Use 0 if the value is not an Int
let value = Int(myTextField.text ?? "") ?? 0

我在项目中有一个带有属性的解析类,我知道有不同的方法,但我通常这样做,没有问题。

解析类头文件

                strSrc = $(this).attr('src'); 
                var timestamp = new $.now();
                $(this).attr('src', strSrc + "?i=" + timestamp );
                this.player.load();
                this.player.play();

.m文件

[PFObject setPhoto:]: unrecognized selector sent to instance 0x7fa15ac8f1c0

这是我保存图片的地方

#import <Parse/Parse.h>

@interface Picture : PFObject <PFSubclassing>

@property (nonatomic, strong) NSString *Caption;
@property (nonatomic, strong) NSArray *Likes;
@property (nonatomic, strong) PFFile *Photo;

+ (NSString *)parseClassName;

@end

我一开始认为它可能是图像的大小,但当我评论该部分而只是尝试保存标题时,我得到相同的错误,但是使用“setCaption”而不是“setPhoto”

更新:对象已保存到解析但列中没有数据,键(属性)拼写正确,一切都是。

谢谢!

1 个答案:

答案 0 :(得分:0)

问题似乎是在自定义PFObject上没有创建动态生成的setter。

问题可能是您选择的属性案例。 Apple定义的约定是以小写字母开始一个属性,然后将其作为驼峰大小写。您应该将大小写更改为小写,因为这可能会导致与getter的创建冲突。

你已经拥有

PFObject *object = [PFObject objectWithClassName:@"Picture"];

我猜你的代码不适用。

我可以建议的另一件事是移动

picture.Photo = file;
picture.Caption = nameString;

在块之外并将其放在PFFile *file = [PFFile...之后并删除

[picture saveInBackground];

因为您似乎要将图片对象保存两次。根据您在Parse中获得的空记录对应的描述。因此,正在成功执行该保存。这是失败的第二次保存。

另外,请尝试添加

#import <Parse/PFObject+Subclass.h>

到您的实现(.m)文件,因为这是定义object的类方法的地方。