2

CoreData を使用するアプリがあります。CoreData の 2 つのオブジェクト タイプに対して NSManagedObjects を作成しました。オブジェクトを使用してオブジェクトにプロパティを設定しようとすると、コンパイラは「[User setUsername:]: unrecognized selector sent to instance」と表示します。[User setValue] のどの属性を試してみても、常に認識されませんか?

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

または User *joeBlow = [[User alloc] 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

通常のコア データ エンティティの新しいインスタンスを作成することはできませんalloc-initパターン (他のクラスとは異なります)。代わりに、NSEntityDescription でクラス メソッドを呼び出します。

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

詳細については、Apple のCore Data Programming Guideを参照してください。

[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 に答える