エラーが発生しているようですが、わかりません。うまくいけば、これはあまりにも混乱して長くなることはありませんが、私の検索では答えが見つからないようですので、必要と思われます。CoreData/RegExエラー:オブジェクトから正規表現を作成できません
Customer
年代を持つことができますが、多くのInvoices
、Invoices
はItemSolds
多くを持つことができます
ItemSold 請求書 お客様:私のプログラムでは、私はいくつかのエンティティを持っています。
私のInterface Builderには、3つのテーブルがあります。 1つの表は得意先を表し、別の表は請求書を表し、最後の表はその請求書のitemsoldを表します。 顧客を選択すると、その請求書が請求書テーブルに表示されます。請求書をクリックすると、その請求書の明細が最後の表に表示されます。
テーブルを選択するとエラーが発生しているようです。興味深いことに、別のビューでは、これを行うことができます(タイプとの関係に基づいてアイテムをソートしようとしているとき)。しかし、私はここで働くことができません。
if (managedObjectContext == nil)
{
managedObjectContext = [(HistoryController *)[[NSApplication sharedApplication] delegate] managedObjectContext];
}
NSError *error = nil;
// fetch all customers
NSFetchRequest *fetchRequest2 = [[NSFetchRequest alloc] init];
NSEntityDescription *entity2 = [NSEntityDescription entityForName:@"Customer"
inManagedObjectContext:managedObjectContext];
[fetchRequest2 setEntity:entity2];
fetchedCustomers = [managedObjectContext executeFetchRequest:fetchRequest2 error:&error];
if (fetchedCustomers == nil) {
NSLog(@"ERROR");
}
[fetchRequest2 release];
// end of customer fetch
// fetch all invoices
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Invoice"
inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSLog(@"A");
if ([customerTable selectedRow] >= 0)
{
NSLog(@"B");
int index = (int)[customerTable selectedRow];
NSLog(@"%@", index);
NSString *customerString = [[fetchedCustomers objectAtIndex:(index)] valueForKey:@"CustomerNumber"];
NSNumber *customerNumber = [NSNumber numberWithInt:([customerString intValue])];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"customer.CustomerNumber like %@", customerNumber];
[fetchRequest setPredicate:predicate];
}
fetchedInvoices = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
if (fetchedInvoices == nil) {
NSLog(@"ERROR");
}
[fetchRequest release];
// end of invoice fetch
// fetch specific invoice
NSFetchRequest *fetchRequest3 = [[NSFetchRequest alloc] init];
NSEntityDescription *entity3 = [NSEntityDescription entityForName:@"ItemSold"
inManagedObjectContext:managedObjectContext];
[fetchRequest3 setEntity:entity3];
if ([invoicesListTable selectedRow] >= 0)
{
NSLog(@"C");
int index = (int)[invoicesListTable selectedRow];
NSLog(@"%i", (int)[invoicesListTable selectedRow]);
NSLog(@"%i", index);
NSString *invoiceString = [[fetchedInvoices objectAtIndex:(index)]
valueForKey:@"InvoiceNumber"];
NSNumber *invoiceNumber = [NSNumber numberWithInt:([invoiceString intValue])];
NSPredicate *predicate3 = [NSPredicate predicateWithFormat:@"invoice.InvoiceNumber like %@", invoiceNumber];
[fetchRequest3 setPredicate:predicate3];
}
NSLog(@"D");
fetchedObjects = [managedObjectContext executeFetchRequest:fetchRequest3 error:&error];
if (fetchedObjects == nil)
{
NSLog(@"ERROR");
}
[fetchRequest3 release];
[invoiceTable reloadData];
NSLog(@"D2");
}
私は実行し、行をクリックすると、これは私が得るものです::
2012-02-13 16:42:35.326 InventoryProgram[7056:707] A
これは私の保存すべき項目を取得するためにフェッチされます2012-02-13 16:42:35.327 InventoryProgram[7056:707] C
2012-02-13 16:42:35.327 InventoryProgram[7056:707] 0
2012-02-13 16:42:35.328 InventoryProgram[7056:707] 0
2012-02-13 16:42:35.328 InventoryProgram[7056:707] D
2012-02-13 16:42:35.329 InventoryProgram[7056:707] Can't create a regex expression from object 2.
私はコントロールは、次の場所だけを示すために、文字の出力を示しています。行を選択すると、正しい行番号(0)が出力され、実際には問題が発生していると思った場所を過ぎてしまいます。文字Dを出力すると、NSPredicate領域が渡されます。これは、正規表現の問題が発生していると思います。私は今、それがexecuteFetchRequestに到達し、それに割り当てられたNSPredicateの問題に遭遇したと仮定しています。
ここに正しい方向で私に指摘する人はいませんか?私は、問題が何であるかについて私の心を包み込むことはできません。私は本当にここにあまりコードがないことを願っています、私はできるすべての情報を提供しようとしています。