Tôi có một thực thể trong "ProjName.xcdatamodel
" có tên "Câu hỏi". Trong thực thể này tôi có 5 thuộc tính ("icehockey", "bóng chuyền", "bóng đá", ...), mỗi thuộc tính có loại transformable
. Mỗi hàng (thuộc tính) sẽ được lấp đầy với một NSMutableArray. Điều tôi muốn làm là lấy giá trị của một thuộc tính cụ thể trong thực thể này. Đây là mã của tôi:Swift lấy NSManagedObject cụ thể từ thực thể (dữ liệu cốt lõi)
func readQuestionsFromCore(sport:NSString) -> NSMutableArray {
var appDel:AppDelegate = (UIApplication.sharedApplication().delegate as AppDelegate)
var context:NSManagedObjectContext = appDel.managedObjectContext!
var request = NSFetchRequest(entityName: "Questions")
request.returnsObjectsAsFaults = false
var results: NSArray = context.executeFetchRequest(request, error: nil)!
var qArr:NSMutableArray!
if results.count > 0 {
var res = results[0] as NSManagedObject
qArr = res.valueForKey("\(sport)") as NSMutableArray
return qArr
} else {
qArr = []
return qArr
}
}
này sẽ ofcourse không hoạt động kể từ khi tôi đưa ra các chỉ số đầu tiên của các kết quả từ cơ sở dữ liệu (results[0] as NSManagedObject
) và do đó nó sẽ sụp đổ nếu yếu tố đó là không giống như các valueForKey tôi' m tìm kiếm.
Làm cách nào để có được hàng kết quả mà tôi đang tìm kiếm? I E. "bóng đá", hoặc ít nhất tôi có thể bằng cách nào đó lặp lại kết quả và so sánh các khóa của mỗi hàng kết quả để nó không sụp đổ khi tôi thử với khóa sai? Như một cái gì đó như thế này:
for (res) in results as NSManagedObject {
if(res.key == "soccer") {
qArr = res.valueForKey("soccer") as NSMutableArray
return qArr
}
}
Tôi hy vọng tôi sẽ giải thích rõ ràng!
Trợ giúp sẽ thực sự được đánh giá cao. Tôi đã tìm kiếm trên internet xấu havn't đã có bất kỳ may mắn! – user2099024
Tôi nghĩ bạn cần thêm NSPredicate vào "yêu cầu" của mình. Sau đó, bạn có thể lọc dữ liệu bạn muốn nhận lại từ thực thể. Hãy xem liên kết này ví dụ: http://nshipster.com/nspredicate/ –
@KevinHorgan Hãy thử khi ở nhà! – user2099024