मेरा काम iCloud से files चुनना है और यह url,title,etc. है, फिर आइटम array में जोड़ना है। उसके बाद, मैं struct की सहायता से प्रत्येक मान ले रहा हूं और tableView में सूचीबद्ध कर रहा हूं।

यहां, एक बात मुझे समझने की जरूरत है, कैसे validate उपयोगकर्ता द्वारा चुनी गई फाइलें पहले से मौजूद हैं या मेरी सरणी में नहीं हैं। यदि मौजूद है, तो मैं उनकी फ़ाइल को alert संदेश के साथ जोड़ने की अनुमति नहीं देता।

// Array Declaration
var items = [Item]()
var tableArray = [Item]() 

// Values appending into my array
items.append(Item(url: fileurl, title: filename, exten: fileextension, size: string))

// Tableview data load
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! CustomTableViewCell
    let item = tableArray[indexPath.row]

        if tableArray.count > 0 {
            cell.name_label_util.text = item.title
            cell.size_label_util.text = item.size
        }
    return cell
}
0
pastelsdev 6 अक्टूबर 2018, 14:29

2 जवाब

सबसे बढ़िया उत्तर

आप contains(where:) का उपयोग यह जांचने के लिए कर सकते हैं कि सरणी में है या नहीं कक्षा में अद्वितीय गुणों की तुलना करके तत्व।

if !items.contains(where: {$0.url == fileUrl}) {
    items.append(yourItem)
}
0
Rakesha Shastri 6 अक्टूबर 2018, 14:43

आप मौजूदा items सरणी पर एक फ़िल्टर जोड़कर जांच सकते हैं कि Item पहले से मौजूद है या नहीं। यदि परिणाम nil है तो नया आइटम ऑब्जेक्ट जोड़ें।

नोट: मैं यह जांचने के लिए url का उपयोग कर रहा हूं, यह अद्वितीय होना चाहिए। या इसे Item मोडल में यूनिक की से बदलें।

if items.filter({ $0.url == fileurl }).first == nil {
    items.append(Item(url: fileurl, title: filename, exten: fileextension, size: string))
}

विकल्प:

if items.index(where: { $0.url == fileurl }) == nil {
    items.append(Item(url: fileurl, title: filename, exten: fileextension, size: string))
}
0
Ankit Jayaswal 6 अक्टूबर 2018, 14:34