আমি নতুন অ্যাপল সুইফট ভাষা দিয়ে কিছু বের করার চেষ্টা করছি। ধরা যাক আমি উদ্দেশ্য-সি তে নিম্নলিখিতগুলির মতো কিছু করতাম। আমার readonly
সম্পত্তি আছে এবং সেগুলি স্বতন্ত্রভাবে পরিবর্তন করা যায় না। তবে, একটি নির্দিষ্ট পদ্ধতি ব্যবহার করে বৈশিষ্ট্যগুলি লজিক্যাল পদ্ধতিতে পরিবর্তন করা হয় are
আমি নীচের উদাহরণটি গ্রহণ করি, খুব সাধারণ একটি ঘড়ি। আমি এটা উদ্দেশ্য উদ্দেশ্য সি লিখতে হবে।
@interface Clock : NSObject
@property (readonly) NSUInteger hours;
@property (readonly) NSUInteger minutes;
@property (readonly) NSUInteger seconds;
- (void)incrementSeconds;
@end
@implementation Clock
- (void)incrementSeconds {
_seconds++;
if (_seconds == 60) {
_seconds = 0;
_minutes++;
if (_minutes == 60) {
_minutes = 0;
_hours++;
}
}
}
@end
একটি নির্দিষ্ট উদ্দেশ্যে, আমরা সরাসরি সেকেন্ড, মিনিট এবং ঘন্টা স্পর্শ করতে পারি না এবং এটি কেবল একটি পদ্ধতি ব্যবহার করে দ্বিতীয় সেকেন্ডে বৃদ্ধি করার অনুমতি দেয়। কেবলমাত্র এই পদ্ধতিটি উদাহরণের পরিবর্তনশীলগুলির কৌশল ব্যবহার করে মানগুলি পরিবর্তন করতে পারে।
যেহেতু সুইফটে এ জাতীয় কোনও জিনিস নেই, তাই আমি একটি সমতুল্য অনুসন্ধান করার চেষ্টা করছি। আমি যদি এটি করি:
class Clock : NSObject {
var hours: UInt = 0
var minutes: UInt = 0
var seconds: UInt = 0
func incrementSeconds() {
self.seconds++
if self.seconds == 60 {
self.seconds = 0
self.minutes++
if self.minutes == 60 {
self.minutes = 0
self.hours++
}
}
}
}
এটি কাজ করবে, তবে যে কেউ সরাসরি সম্পত্তি পরিবর্তন করতে পারে।
হয়তো আমি ইতিমধ্যে উদ্দেশ্য-সি তে একটি খারাপ নকশা পেয়েছি এবং সে কারণেই সম্ভাব্য নতুন সুইফ্টের সমতুল্য তা বোঝায় না। যদি না হয় এবং যদি কারও উত্তর থাকে, আমি খুব কৃতজ্ঞ হব;)
ভবিষ্যতে অ্যাপল দ্বারা প্রতিশ্রুতি দেওয়া অ্যাক্সেস কন্ট্রোল প্রক্রিয়াগুলির উত্তর কি?
ধন্যবাদ!