2013-01-23 62 views
0

我有一個鏈接,我正在掃描另一個視圖中的QR碼掃描器,然後將其保存到Core Data。我將其保存的實體稱爲「BarCode」,其屬性爲「number」。您將在一分鐘內看到的提取結果是QR碼掃描的正確URL。我只是遇到了像我在標題中列出的錯誤。它的字面意思是這樣的:-[BarCode length]: unrecognized selector sent to instance 0x210645e0NSURLRequest錯誤:「[CoreData length]:發送到實例的無法識別的選擇器」

我有這個塊我執行,這也引發錯誤:

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導致錯誤,因爲它是「無法識別」。但是我做了一些研究,發現錯誤中的「長度」屬性與NSURLRequest的某個類有關,但是我是全新的類,所以我不知道如何重寫這塊。

我試着搜索一下,但是找不到一個涉及NSFetchRequestNSURLRequest的例子。

我真的很希望有人對此有所瞭解。謝謝!

+0

「BarCode」中的哪個參數表示url? – iDev

回答

1

您的currentURL將持有NSManagedObject子類的實例,而不是NSString。你缺少的幾行代碼:

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]]]; 

你所得到的錯誤-[BarCode length]: unrecognized selector sent to instance 0x210645e0因爲[NSURL URLWithString:currentURL]假定CURRENTURL是一個字符串,並NSURL嘗試做一些字符串驗證。

+0

不錯,但現在我得到一個' - [__ NSArrayI數字]:無法識別的選擇發送到實例0x1cda7eb0'錯誤:( – jakenberg

+0

沒關係,我忘了添加'objectAtIndexPath:'。謝謝! – jakenberg

相關問題