এটি সত্যিই কেবল একটি সিনট্যাক্স সুইচ। ঠিক আছে, সুতরাং আমাদের কাছে এই পদ্ধতি কলটি রয়েছে:
[NSPredicate predicateWithFormat:@"name contains[c] %@", searchText]
সুইফ্টে, কনস্ট্রাক্টররা "ব্লাহউইথ ..." অংশটি এড়িয়ে যান এবং ক্লাসের নামটি একটি ফাংশন হিসাবে ব্যবহার করেন এবং তারপরে সরাসরি আর্গুমেন্টে যান, তাই [NSPredicate predicateWithFormat: …]
হয়ে যায় NSPredicate(format: …)
। (অন্য একটি উদাহরণের জন্য, [NSArray arrayWithObject: …]
হয়ে উঠবে NSArray(object: …)
This এটি সুইফটে নিয়মিত প্যাটার্ন)
সুতরাং এখন আমাদের কেবল কনস্ট্রাক্টরের কাছে আর্গুমেন্টগুলি পাস করতে হবে। অবজেক্টিভ-সি-তে, এনএসএস @""
স্ট্রিং লিটারেল দেখতে দেখতে কিন্তু সুইফটে আমরা কেবল স্ট্রিংয়ের জন্য উদ্ধৃতি চিহ্ন ব্যবহার করি। সুতরাং যে আমাদের দেয়:
let resultPredicate = NSPredicate(format: "name contains[c] %@", searchText)
এবং প্রকৃতপক্ষে আমাদের এখানে এটি ঠিক প্রয়োজন।
(ঘটনাক্রমে, আপনি এর পরিবর্তে অন্য কয়েকটি উত্তর লক্ষ্য করুন যে পরিবর্তে একটি বিন্যাসের স্ট্রিং ব্যবহার করবেন "name contains[c] \(searchText)"
। এটি সঠিক নয় That এটি স্ট্রিং ইন্টারপোলেশন ব্যবহার করে, যা প্রাকটিক বিন্যাস থেকে পৃথক এবং সাধারণত এর জন্য কাজ করবে না)))