0

別のビューのQRコードスキャナーでスキャンしているリンクがあり、それがCoreDataに保存されます。保存しているエンティティは「BarCode」と呼ばれ、属性は「number」です。1分で表示されるフェッチの結果は、QRコードスキャンからの適切なURLです。タイトルに記載されているようなエラーが発生します。それが文字通り言うことはこれです:-[BarCode length]: unrecognized selector sent to instance 0x210645e0

実行しているこのブロックがあり、これもエラーをスローします。

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"BarCode"];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"number" ascending:NO];
request.sortDescriptors = @[sortDescriptor];

NSError *error = nil;
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
NSString *currentURL = [[self.managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:indexPath.row];
if (error) {
    NSLog(@"error fetching data %@ %@", error, error.userInfo);
}

[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:currentURL]]];

「認識されない」ため、からへの変換からへの変換がエラーの原因であることを理解していNSArrayます。NSStringしかし、少し調べてみると、エラー内の「lenght」プロパティはNSURLRequestクラス内の何かに関係していることがわかりましたが、私はクラスにまったく慣れていないので、これをどのように書き直す必要があるのか​​わかりませんブロック。

少し調べてみましたが、、、を含む例が見つかりませんでしNSFetchRequestNSURLRequest

誰かがここで何らかの洞察を持ってくれることを本当に望んでいます。ありがとう!

4

1 に答える 1

1

ではなく、サブクラスのインスタンスcurrentURLを保持します。数行のコードがありません:NSManagedObjectNSString

MyManagedObject *myManagedObject = [[self.managedObjectContext executeFetchRequest:request error:&error] objectAtIndex:indexPath.row];
// This is what you are missing:
NSString *currentURL = myManagedObject.someStringAttribute;
if (error) {
    NSLog(@"error fetching data %@ %@", error, error.userInfo);
}

[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:currentURL]]];

currentURL が文字列であると想定し、いくつかの文字列の検証を試みる-[BarCode length]: unrecognized selector sent to instance 0x210645e0ため、エラーが発生しています。[NSURL URLWithString:currentURL]NSURL

于 2013-01-23T07:25:30.750 に答える