2015-03-13 13 views
6

मैं आईओएस विकास के लिए नया हूं और यह जानना चाहता था कि एकाधिक स्ट्रिंग्स (सरणी) को स्टोर करने के लिए मुझे किस डेटा प्रकार को निर्दिष्ट करना चाहिए। ऐप भोजन के साथ करना है और मुझे एक सामग्री के रूप में कई अवयवों को स्टोर करने की आवश्यकता है।आईओएस स्विफ्ट - कोर डेटा के साथ सरणी कैसे स्टोर करें?

मैं घटक के रूप में घटक बनाने की सोच रहा था, लेकिन मैं बस स्टार्टर के लिए इसे आसान बनाना चाहता हूं। मैंने ट्रांसफॉर्म करने योग्य प्रकार के बारे में पढ़ा है लेकिन लोग एरे स्टोर करने के लिए इसका उपयोग करने की अनुशंसा नहीं करते हैं।

उत्तर

11

चेतावनी: आगे उत्तर दिया गया उत्तर।

आप नहीं करते हैं।

किसी सरणी में चीजें संग्रहीत करना आपके लिए कुछ भी आसान नहीं बनाता है। इसके विपरीत, यह चीजों को केवल एक घंटे में कठिन बना देगा। कल्पना कीजिए कि आप सभी व्यंजनों को दिखाना चाहते हैं जिनमें एक चयनित घटक शामिल है। यह आपके सरणी हैक के साथ आसान नहीं होगा, उचित मॉडल के साथ यह कोड की केवल दो पंक्ति है।

मैं "जॉइन-एंट्री" के साथ एक अच्छे पुराने रिश्ते का उपयोग करने की सलाह दूंगा।

basic Recipe data model

हाँ, यह कुछ एक साथ है कि मुश्किल से काम करता है हैकिंग से अधिक जटिल है। लेकिन यह सही तरीका है।

+1

आपके सुझाव के लिए धन्यवाद। आप सही हे। मुझे इसे ठीक से करना चाहिए। –

+0

क्या आप कृपया मुझे बता सकते हैं कि क्या मुझे स्पष्ट रूप से संयुक्त इकाई में रेसिपी आईडी और घटक आईडी के गुण बनाने की आवश्यकता है? या यदि संबंध स्थापित हो जाता है तो xcode स्वचालित रूप से इसे संभालता है? –

+0

मैं देखता हूं कि खोज परिणामों को सॉर्ट करने और प्रदर्शित करने के बारे में आपका क्या मतलब है। हालांकि, क्या अब उसे कस्टम ingrediet वस्तुओं की एक सरणी की जरूरत नहीं है? मेरे ऐप को एक स्ट्रिंग सरणी की आवश्यकता है (और उपर्युक्त मॉडल से लाभ नहीं होगा), और मुझे अभी भी पता नहीं है कि सरणी को कैसे स्टोर किया जाए। कोई मदद? – Japes

2

आप जो सोच रहे थे वह बिल्कुल वैसा ही है जो आपको करना चाहिए। कोर डेटा संरचना जैसे सरणी में मूल्यों को स्टोर करने के लिए बनाया जाता है। आपको सामग्री सामग्री बनाना चाहिए और सामग्री इकाई के साथ संबंधों के साथ अपनी खाद्य इकाई (या जिसे आप इसे कॉल करना चाहते हैं) को जोड़ना चाहिए।

+0

धन्यवाद का उपयोग कर सभी तत्वों को प्राप्त कर सकते हैं धन्यवाद :) मैं उचित तरीके से जाऊंगा। –

+0

लेकिन इन आंकड़ों को कहां स्टोर करना है? – Martian2049

1

एक तरीका है। आप मैन्युअल रूप से प्रत्येक तत्व कर सकते हैं उदा। आप अपने सरणी है:

let employee: NSMutableArray = [] 

employee.addObject(["name":"Bill","LastName":"Hanks"]) 
employee.addObject(["name":"Rolex","LastName":"Swarzer"]) 
employee.addObject(["name":"Clive","LastName":"Martin"]) 
employee.addObject(["name":"Jimi","LastName":"Hendrix"]) 

मान लिया जाये कि आप इकाई "कर्मचारी" के साथ अपने CoreData बनाया था और इसे जोड़ने के लिए "नाम" और विशेषता "उपनाम", निम्न करना है ...

let appDel = UIApplication.sharedApplication().delegate as! AppDelegate 
let context = appDel.managedObjectContext 

for item in employee { 
    do { 
     let newUser = NSEntityDescription.insertNewObjectForEntityForName("Employee", inManagedObjectContext: context) 
     newUser.setValue(item["name"], forKey: "name") 
     newUser.setValue(item["LastName"], forKey: "lastname") 
     try context.save() 
    } catch { 
     //do nothing 
    } 

फिर आप अपने fetch अनुरोध या NSFetched परिणाम नियंत्रक

संबंधित मुद्दे