2017-02-11 118 views
-1
  • Core Data中是否存在存儲過程概念?如果是這樣, 請分享一些示例項目鏈接
  • 我曾經看到記錄是從實體使用下面的代碼獲取。爲什麼不使用SQL查詢?存儲過程概念是否存在於核心數據中?

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
    [fetchRequest setEntity: [NSEntityDescription entityForName: @"ServiceTypes" inManagedObjectContext: context]]; 
    
    [fetchRequest setPredicate: [NSPredicate predicateWithFormat: @"serviceTypeID == %@", arrData[0]]]; 
    
    NSError *error = nil; 
    NSArray *fetchResult = [context executeFetchRequest: fetchRequest error:&error]; 
    
    if (error) { 
        NSLog(@"Unable to execute fetch request."); 
        NSLog(@"%@, %@", error, error.localizedDescription); 
    } else { 
        if (fetchResult.count > 0) { 
         ServiceTypes object = (ServiceTypes)[fetchResult objectAtIndex: 0]; 
    
         if (!boolCkl) { 
          [object setValue:arrData[1] forKey:@"code"]; 
          NSLog(@"Service Type Data Updated"); 
         } else { 
          [context deleteObject: object]; 
          NSLog(@"Service Type Data Deleted"); 
         } 
        } else { 
         ServiceTypes *object = [NSEntityDescription insertNewObjectForEntityForName: @"ServiceTypes" inManagedObjectContext: context]; 
         [object setValue: arrData[0] forKey: @"serviceTypeID"]; 
         [object setValue: arrData[1] forKey: @"code"]; 
        } 
    } 
    
+2

對Core Data進行一些基本的閱讀是件好事。它不是傳統的SQL數據庫。 –

回答

0

你似乎有錯誤的印象,即核心數據的SQL,或至少相似的SQL。事實並非如此。它可以用來存儲結構化數據,但是如果你試圖像SQL那樣處理它,你會很糟糕的。它的API非常不同。它沒有存儲過程,因爲它不是SQL。您不使用SQL查詢,因爲您沒有使用SQL。您使用的代碼與您提供的示例相似,因爲這就是Core Data的API的樣子。

如果您對Apple的Core Data Programming Guide有所瞭解,那麼完全解釋它是什麼以及它是如何工作的,對於Stack Overflow答案來說太長了。