你好我在我的應用程序中使用核心數據,並且想要在每個實體中將ID屬性設置爲自動增量。核心數據可能嗎?或者我必須手動插入條目並以編程方式管理增量?我們可以在覈心數據中定義自動增量屬性嗎?
31
A
回答
36
如果您正在考慮主鍵的ID,那麼核心數據會爲您處理。在每個對象上都有一個objectID
屬性,您可以通過它訪問它。從託管對象上下文創建對象時,核心數據會分配一個臨時ID。當您從託管對象上下文提交更改時,核心數據會分配一個佔位符ID。我不認爲這是手動嘗試和設置這是一個好主意。
閱讀this stackoverflow thread瞭解更多詳情。
0
你可以那樣做 後
saveContext()
的Objective-C:
- (int)getAutoIncrement {
int number = 0;
NSURL *url = [[self objectID] URIRepresentation];
NSString *urlString = url.absoluteString
NSString *pN = [[urlString componentsSeparatedByString:@"/"] lastObject];
if ([pN containsString:"p"]){
NSString *stringPart = [pN stringByReplacingOccurrencesOfString:@"p" withString:@""]
number = stringPart.intValue
}
url = nil;
urlString = nil;
pN = nil;
stringPart = nil;
return number;
}
斯威夫特:
func getAutoIncremenet() -> Int64 {
let url = self.objectID.uriRepresentation()
let urlString = url.absoluteString
if let pN = urlString.components(separatedBy: "/").last {
let numberPart = pN.replacingOccurrences(of: "p", with: "")
if let number = Int64(numberPart) {
return number
}
}
return 0
}
0
我用NSFetchedResultsController
這樣:
第一劃分:
fetchRequest.sortDescriptors = [NSSortDescriptor(key: "id", ascending: false)]
然後在添加對象的方法:
// Minimum id value
var recordID = 1
if let lastRecordID = fetchedResultsController.fetchedObjects?.first?.id {
recordID = Int(lastRecordID) + 1
}
let newRecord = Record(context: persistentContainer.viewContext)
newRecord.id = Int32(recordID)
相關問題
- 1. 增量核心數據屬性
- 2. 我們可以在Fortran中創建自定義屬性嗎?
- 3. 核心數據ID自動增量
- 4. 我可以使用自定義類來保存核心數據中屬性的數據嗎?
- 5. 我們可以限制我們的數據庫不自動增長嗎?
- 6. 將自定義對象保存爲核心數據屬性
- 7. 自定義獲取核心數據屬性
- 8. 我可以在自動生成的WCF類中包含自定義屬性嗎?
- 9. 我們可以在Codeigniter中定義常量數組嗎?
- 10. 我可以使用自定義驗證屬性手動驗證屬性嗎?
- 11. 我們可以在codeigniter中使用核心php嗎?
- 12. 核心數據可轉換屬性
- 13. 核心數據可轉換屬性上的自定義類的示例
- 14. 核心數據順序:我可以使用浮動嗎?
- 15. 核心數據集屬性
- 16. Xcode核心數據屬性
- 17. 核心數據的動態屬性
- 18. 核心數據 - 處理動態屬性
- 19. 指定核心數據屬性
- 20. Linux核心數據可以使用嗎?
- 21. 核心數據:是否可以在組中使用自定義函數
- 22. 是否可以在覈心數據中使用自定義的sqlite函數?
- 23. 我們可以有genric屬性嗎?
- 24. 核心數據可以在iOS上延遲獲取BLOB屬性嗎?
- 25. 我們可以在javascript函數中調用類屬性嗎?
- 26. 我們可以在Visual Studio 2010中自定義app_offline.htm嗎?
- 27. 我們可以自定義嵌入在Solr中的Lucene嗎?
- 28. 我們可以在angularjs中製作自定義過濾器嗎?
- 29. 我們可以在roku中自定義TextEditBox節點嗎?
- 30. 我們可以在yii2 gridview中自定義搜索嗎
如何OBJECTID轉換爲NSNumber的,所以你可以將其存儲在覈心數據? – 2016-03-09 11:07:23