আমার মধ্যে 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পদ্ধতিতে কনফিগার পদ্ধতিটি ব্যবহার করি, তখন আমি যে ব্লকটিতে প্রবেশ করি সেখানে কীভাবে দুর্বল স্বকে সঠিকভাবে ব্যবহার
করব the দুর্বল স্ব ছাড়া আমার যা আছে তা এখানে:
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]?