मेरे पास TextViewTableViewCell, मेरे पास एक ब्लॉक का ट्रैक रखने के लिए एक चर है और एक कॉन्फ़िगर विधि है जहां ब्लॉक को पास और सौंपा गया है।
यहाँ मेरी TextViewTableViewCellकक्षा है:
//
// TextViewTableViewCell.swift
//
import UIKit
class TextViewTableViewCell: UITableViewCell, UITextViewDelegate {
@IBOutlet var textView : UITextView
var onTextViewEditClosure : ((text : String) -> Void)?
func configure(#text: String?, onTextEdit : ((text : String) -> Void)) {
onTextViewEditClosure = onTextEdit
textView.delegate = self
textView.text = text
}
// #pragma mark - Text View Delegate
func textViewDidEndEditing(textView: UITextView!) {
if onTextViewEditClosure {
onTextViewEditClosure!(text: textView.text)
}
}
}
जब मैं अपनी विधि में कॉन्फ़िगर विधि का उपयोग करता हूं cellForRowAtIndexPath, तो मैं जिस ब्लॉक से गुजरता हूं, उसमें कमजोर स्वयं का उपयोग कैसे ठीक से करता हूं।
यहां मेरे पास कमजोर स्वयं के बिना है:
let myCell = tableView.dequeueReusableCellWithIdentifier(textViewCellIdenfitier) as TextViewTableViewCell
myCell.configure(text: body, onTextEdit: {(text: String) in
// THIS SELF NEEDS TO BE WEAK
self.body = text
})
cell = bodyCell
अद्यतन : मुझे निम्नलिखित का उपयोग करके काम करना है [weak self]:
let myCell = tableView.dequeueReusableCellWithIdentifier(textViewCellIdenfitier) as TextViewTableViewCell
myCell.configure(text: body, onTextEdit: {[weak self] (text: String) in
if let strongSelf = self {
strongSelf.body = text
}
})
cell = myCell
जब मैं इसके [unowned self]बजाय करता हूं [weak self]और ifस्टेटमेंट निकालता हूं , तो ऐप क्रैश हो जाता है। यह कैसे के साथ काम करना चाहिए पर कोई विचार [unowned self]?