আমি আমার বিদ্যমান সুইফ্ট ক্লাসের বিভাগ তৈরি করতে চাই, তবে এটি করার জন্য আইডিইতে কোনও বিকল্প নেই।
কোন প্রকল্পটি যদি সুইফ্ট প্রকল্পে বিদ্যমান থাকে? বা সুইফ্ট প্রকল্পে কীভাবে অনুরূপ কার্যকারিতা অর্জন করবেন?
উত্তর:
সুইফ্টে, আপনি Extensions
বিদ্যমান বর্গ, স্ট্রাক্ট এবং গণনার ধরণগুলিতে নতুন কার্যকারিতা যুক্ত করতে ব্যবহার করতে পারেন ।
তারা কয়েকটি উপায়ে উদ্দেশ্যমূলক-সি বিভাগ থেকে পৃথক, মূলত:
এটি আজ যেমন দাঁড়িয়েছে, এক্সটেনশনগুলি এটি করতে পারে:
এক্সটেনশন ঘোষণার জন্য বেসিক সিনট্যাক্সটি নিম্নরূপ:
extension SomeType {
// new functionality to add to SomeType goes here
}
সুইফটে এক্সটেনশনগুলি কীভাবে ব্যবহার করতে হয় সে সম্পর্কে আরও তথ্যের জন্য অ্যাপলের ডকুমেন্টেশন চেক করুন।
উদ্দেশ্য সিতে তাদের বিভাগ বলা হত , তবে সুইফটে তাদেরকে এক্সটেনশন বলা হয় । এই উভয়ের উদ্দেশ্য হ'ল সাবক্ল্যাস তৈরি না করে বিদ্যমান ক্লাসগুলিতে অতিরিক্ত কার্যকারিতা দেওয়া।
আমি ডকুমেন্টেশনে এক্সটেনশানগুলি সম্পর্কে পড়েছি, তবে আমি এই টিউটোরিয়াল ভিডিওটি ( ইউটিউব সংস্করণ , গিথুব উত্স ) না দেখার আগে পর্যন্ত আমার প্রকল্পে কীভাবে একটি ব্যবহার করব তা আমি সত্যিই বুঝতে পারি নি ।
এটি কীভাবে করা যায় তার ভিডিও থেকে নেওয়া একটি সংক্ষিপ্ত বিবরণ এখানে।
প্রকল্প নেভিগেটরে ডান ক্লিক করুন এবং "নতুন ফাইল ..." চয়ন করুন
"সুইফট ফাইল" নির্বাচন করুন
কনভেনশন হ'ল ফাইলের নামটি আপনি শ্রেণীর নাম হিসাবে সংরক্ষণ করবেন যা আপনি বর্ধিত করছেন প্লাস ("+" চিহ্ন সহ) আপনি এতে কী করছেন। উদাহরণস্বরূপ, "ইউআইআইমেজ + ক্রপিং"।
আপনি সদ্য তৈরি নতুন সুইফট ফাইলটি খুলুন।
আপনি যদি প্রসারিত করেন তবে আপনার UIKit
পরিবর্তে আমদানি করা উচিত । তারপরে আপনি যে শ্রেণীর নামটি প্রসারিত করতে চান তার আগে কীওয়ার্ডটি ব্যবহার করুন । তারপরে আপনি ক্লাসে নিজের নতুন পদ্ধতি যুক্ত করতে পারেন। (দ্রষ্টব্য, এক্সটেনশনগুলি নতুন পদ্ধতি যুক্ত করার জন্য, বিদ্যমান পদ্ধতিগুলিকে ওভাররাইড না করে - তাই নামটি are)Foundation
UIView
extension
ভিডিওতে, উদাহরণটি হ'ল এমন একটি পদ্ধতি যুক্ত করা যা চিত্র থেকে একটি বৃত্ত কাটা এবং এটিকে একটি সীমানা দেয়।
import UIKit
extension UIImage {
func cropToCircleWithBorderColor(color: UIColor, lineWidth: CGFloat) -> UIImage {
// code to create the cropped circle with colored border
return newImage
}
}
সম্পূর্ণ উদাহরণের জন্য এখানে দেখুন ।
এখন আপনি এই শ্রেণীর জন্য আপনার কোডের যে কোনও জায়গায় আপনার নতুন পদ্ধতিটি ব্যবহার করতে পারেন, যেমন এটি স্ট্যান্ডার্ড ক্লাসের অংশ ছিল।
ভিডিওটির উদাহরণ এখানে ( গিথুবে ):
import UIKit
class ViewController: UIViewController {
@IBOutlet var imageView : UIImageView = nil
override func viewDidLoad() {
super.viewDidLoad()
let img = imageView.image
imageView.image = img.cropToCircleWithBorderColor(UIColor(red:0.91, green:0.34, blue:0.16, alpha:1.00), lineWidth: 20)
}
}
পদ্ধতিটি cropToCircleWithBorderColor
কোনও স্ট্যান্ডার্ড অংশ নয় UIImage
, তবে আপনি দেখতে পাচ্ছেন, এটি যেমন ছিল ঠিক তেমনই ব্যবহৃত হয়।
আপনি আপনার বিদ্যমান শ্রেণিতে নিম্নলিখিত কোডগুলি ব্যবহার করতে পারেন
extension name{
func funcName(){
}
}
extension
।