আপনার প্রাথমিক সমস্যাটি ছিল:
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 }