আপনার উচিত হবে না। এটি একটি সাধারণ ভুল ধারণা যে সুইফটুআই এমভিভিএমের সাথে সবচেয়ে ভাল কাজ করে।
এমভিভিএমের সুইফটুইতে কোনও স্থান নেই। আপনি জিজ্ঞাসা করছেন যে আপনি যদি একটি আয়তক্ষেত্রটি টানতে পারেন তবে
একটি ত্রিভুজ আকার মাপসই। এটি ফিট না।
আসুন কিছু ঘটনা এবং ধাপে ধাপে কাজ শুরু করুন:
ভিউমোডেল এমভিভিএমের একটি মডেল।
এমভিভিএম মান ধরণের (যেমন; জাভাতে কোনও জিনিস) বিবেচনা করে না।
একটি মান ধরণের মডেল (রাজ্যবিহীন মডেল) রেফারেন্সের চেয়ে নিরাপদ বলে বিবেচিত হয়
অপরিবর্তনীয়তা অর্থে টাইপ মডেল (রাজ্যের সাথে মডেল)।
এখন, এমভিভিএমকে আপনার এমনভাবে একটি মডেল সেট আপ করা দরকার যাতে এটি যখনই পরিবর্তিত হয়, এটি
কিছু পূর্ব নির্ধারিত উপায়ে আপডেট দেখুন view এটি বাইন্ডিং হিসাবে পরিচিত।
বাঁধাই না করে, আপনার উদ্বেগের আলাদা আলাদাকরণ হবে না, যেমন; রিফ্যাক্টরিং আউট
মডেল এবং সম্পর্কিত রাজ্যগুলি এবং এগুলি দেখার থেকে পৃথক রাখে।
এই দুটি জিনিসই বেশিরভাগ আইওএস এমভিভিএম বিকাশকারীদের ব্যর্থ হয়:
আইওএসের traditionalতিহ্যগত জাভা অর্থে কোনও "বাঁধাই" ব্যবস্থা নেই।
কিছু কেবল বাঁধাই উপেক্ষা করবে এবং একটি বস্তুকে ভিউমোডেল বলে মনে করবে
স্বয়ংক্রিয়ভাবে সবকিছু সমাধান করে; কিছু কেভিও-ভিত্তিক আরএক্স চালু করবে, এবং
যখন এমভিভিএম জিনিসগুলি আরও সহজ করার কথা ভাবা হয় তখন সমস্ত কিছুই জটিল করুন।
রাষ্ট্রের সাথে মডেলটি খুব বিপজ্জনক
কারণ এমভিভিএম ভিউমোডেলের উপর অত্যধিক জোর দেয়, রাষ্ট্র পরিচালনায় খুব কম
এবং নিয়ন্ত্রণ পরিচালনার সাধারণ শাখা; বিকাশকারীদের বেশিরভাগই শেষ
রাষ্ট্রের সাথে এমন একটি মডেল ভাবার কথা যা আপডেট দেখাতে পুনরায় ব্যবহারযোগ্য এবং and
testable ।
এই কারণেই সুইফট প্রথমে মান ধরণের প্রবর্তন করে; একটি মডেল ছাড়া
অবস্থা.
এখন আপনার প্রশ্নের কাছে: আপনি যদি জিজ্ঞাসা করেন যে আপনার ভিউমোডেলটি পরিবেশনোবজেক্টে (ইও) অ্যাক্সেস করতে পারে?
আপনার উচিত হবে না। কারণ SwiftUI এ এমন একটি মডেল রয়েছে যা দেখার জন্য স্বয়ংক্রিয়ভাবে দেখা যায়
ইও রেফারেন্স। যেমন;
struct Model: View {
@EnvironmentObject state: State
// automatic binding in body
var body: some View {...}
}
আমি আশা করি লোকেরা কীভাবে কমপ্যাক্ট এসডিকে ডিজাইন করা হয়েছে তা প্রশংসা করতে পারে।
সুইফটুইতে এমভিভিএম স্বয়ংক্রিয় হয় । আলাদা ভিউমোডেল অবজেক্টের দরকার নেই
যা ম্যানুয়ালি দেখার জন্য আবদ্ধ হয় যার কাছে এটিতে ইও রেফারেন্সের দরকার হয়।
উপরের কোড হল MVVM। যেমন; দেখার জন্য বাধ্যতামূলক একটি মডেল।
তবে কারণ মডেলটি মান ধরণের, তাই পরিবর্তিত মডেলের পরিবর্তে এবং রাজ্য হিসাবে
মডেল দেখুন, আপনি নিয়ন্ত্রণের বাইরে (উদাহরণস্বরূপ প্রোটোকল এক্সটেনশনে)।
এটি সরকারী পরিবর্তে ভাষা বৈশিষ্ট্যে ডিজাইনের প্যাটার্নটিকে আনুষ্ঠানিকভাবে আনুষ্ঠানিকভাবে SDK K
এটি প্রয়োগ করে। ফর্মের উপর পদার্থ।
আপনার সমাধানটি দেখুন, আপনাকে সিঙ্গলটন ব্যবহার করতে হবে যা মূলত বিশ্বব্যাপী। আপনি
সুরক্ষা না দিয়ে কোথাও গ্লোবাল অ্যাক্সেস করা কতটা বিপজ্জনক তা জানা উচিত
অপরিবর্তনীয়তা, যা আপনার কাছে নেই কারণ আপনাকে রেফারেন্স টাইপ মডেল ব্যবহার করতে হবে!
টি এল; ডিআর
আপনি সুইফটুইতে জাভা উপায়ে এমভিভিএম করবেন না। এবং এটি করার জন্য সুইফট-ওয়াইয়ের কোনও প্রয়োজন নেই
এটি করতে, এটি ইতিমধ্যে অন্তর্নির্মিত।
আশা করি আরও বিকাশকারী এটি দেখার কারণে এটি একটি জনপ্রিয় প্রশ্নের মতো মনে হয়েছিল like