1

DeviceCore Data を使用してクラス (カスタム クラス)のリストを保存し、それを取得しようとしています。しかし、保存した後、非常に単純なクエリはレコードを返しません。

レコードを保存するための私の呼び出しは常に YES を返し、エラーはありません:

BOOL resultOfSave = [managedObjectContext save:&err];

プロパティ userLogin で検索するための私の述語は次のようになります。

- (NSArray *) devicesForUser:(NSString *)username 
{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Device" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"userLogin = %@", username];
[request setPredicate:predicate];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"macAddress" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];

NSError *error = nil;
NSArray *fetchResults = [managedObjectContext executeFetchRequest:request error:&error];
if (fetchResults == nil) {
    // Handle the error.
    NSLog(@"ERROR: nil fetch result array");
}

[request release];
NSLog(@"devicesForUser [%@] count %d", username, [fetchResults count]);
return fetchResults;    
}

プレデケートを取り除くと、すべてのオブジェクトを取得し、それらをループすると、オブジェクトの少なくとも 1 つの userLogin プロパティが、渡したユーザー名に設定されていることがわかります。 ...

誰もこのような問題を抱えたことがありますか???

あなたが与えることができる助けをありがとう

マーク

4

1 に答える 1

2

述語で、次のように変更します。

@"userLogin = %@"

...に:

@"userLogin == %@"
于 2010-07-15T12:38:11.773 に答える