2

我有一个使用 CoreData 的应用程序。我为 CoreData 中的两种对象类型创建了 NSManagedObjects。当我尝试使用该对象并在该对象上设置一个属性时,编译器会显示“[User setUsername:]: unrecognized selector sent to instance”。不管我,[用户 setValue] 的什么属性,尝试它总是无法识别?

User *joeBlow = [[User alloc] init];
[joeBlow setUsername:@"joeblow"];

或用户 *joeBlow = [[用户分配] init]; joeBlow.username = @"JoeBlow";

两者都给出“发送到实例的无法识别的选择器”

以下是我的 USER 代码:

用户.h

@interface User : NSManagedObject

  @property (nonatomic, retain) NSString * address1;
  @property (nonatomic, retain) NSString * username;
  @property (nonatomic, retain) NSString * zip;
  @property (nonatomic, retain) NSString * email;

@end

用户.m

@implementation User

  @dynamic address1;
  @dynamic username;
  @dynamic zip;
  @dynamic email;

@end
4

2 回答 2

5

您不能通过普通模式创建 Core Data 实体的新实例allocinit与其他类不同)。相反,在 NSEntityDescription 上调用类方法:

User *joeBlow = [NSEntityDescription 
                 insertNewObjectForEntityForName:@"User"
                 inManagedObjectContext:self.managedObjectContext];
[joeBlow setUsername:@"joeblow"];

有关更多信息,请参阅 Apple 的核心数据编程指南

最后,请注意[jb setUsername:@"jb"]jb.username = @"jb"是相同的 - 后者是点符号,表示前者的不同方式。

于 2012-12-06T03:34:50.517 回答
0

这个正确答案不再正确。看这里。

https://github.com/RestKit/RestKit

Article *article = [Article new];
article.title = @"Introduction to RestKit";
article.body = @"This is some text.";
article.author = @"Blake";

// POST to create
[manager postObject:article path:@"/articles" parameters:nil success:nil failure:nil];
于 2013-06-15T18:25:43.330 回答