আপনার প্রাথমিক সমস্যাটি ছিল:
class ReportView: NSView {
var categoriesPerPage = [[Int]]()
var numPages: Int = { return categoriesPerPage.count }
}
'রিপোর্টভিউ' টাইপের ক্ষেত্রে ইনস্ট্যান্সের সদস্য 'বিভাগগুলির পেয়ারপেজ' ব্যবহার করা যাবে না
পূর্ববর্তী পোস্টগুলি সঠিকভাবে নির্দেশ করে, আপনি যদি কোনও গণনা করা সম্পত্তি চান , =সাইনটি ভ্রান্ত হয়।
ত্রুটির অতিরিক্ত সম্ভাবনা:
যদি আপনার অভিপ্রায়টি "একটি বন্ধ বা ফাংশন সহ একটি ডিফল্ট সম্পত্তি মান নির্ধারণ করা " ছিল , আপনার কেবল এটির সামান্য পরিবর্তনও করা উচিত। (দ্রষ্টব্য: এই উদাহরণটি অবশ্যই এটি করার উদ্দেশ্যে করা হয়নি)
class ReportView: NSView {
var categoriesPerPage = [[Int]]()
var numPages: Int = { return categoriesPerPage.count }()
}
পরিবর্তে এর অপসারণ =, আমরা যোগ করুন() একটি ডিফল্ট সূচনা ক্লোজার বোঝাতে । (এটি সমস্ত জায়গায় এক জায়গায় রাখার জন্য, ইউআই কোড শুরু করার সময় এটি কার্যকর হতে পারে))
তবে ঠিক একই ত্রুটি ঘটে:
'রিপোর্টভিউ' টাইপের ক্ষেত্রে ইনস্ট্যান্সের সদস্য 'বিভাগগুলির পেয়ারপেজ' ব্যবহার করা যাবে না
সমস্যাটি অন্যের মান দিয়ে একটি সম্পত্তি আরম্ভ করার চেষ্টা করছে। একটি সমাধান ইনিশিয়ালাইজার তৈরি করা lazy। মান অ্যাক্সেস না করা পর্যন্ত এটি কার্যকর করা হবে না।
class ReportView: NSView {
var categoriesPerPage = [[Int]]()
lazy var numPages: Int = { return categoriesPerPage.count }()
}
সংকলক এখন খুশি!
numPagesসমান চিহ্নটি মুছে ফেলার পরিবর্তে গণিত সম্পত্তি ঘোষণা করতে যাচ্ছেন :var numPages: Int { return categoriesPerPage.count }