সুইফট কোড কার্যকরকরণের এন্ট্রি পয়েন্টটি কী?


105

main()দ্রুত কোন পদ্ধতি নেই । প্রোগ্রামটি অবশ্যই কোথাও থেকে কার্যকর করা শুরু করবে। সুতরাং সুইফ্ট কোড কার্যকরকরণের এন্ট্রি পয়েন্টটি কী এবং এটি কীভাবে সিদ্ধান্ত নেওয়া হয়?

উত্তর:


94

প্লেইন সুইফ্ট মডিউলে প্রবেশের পয়েন্ট হ'ল মডিউলটির ফাইল main.swiftmain.swiftএকমাত্র ফাইল যা শীর্ষ স্তরে অভিব্যক্তি এবং বিবৃতি দেওয়ার মঞ্জুরিপ্রাপ্ত (মডিউলের অন্যান্য সমস্ত সুইফ্ট ফাইলগুলিতে কেবলমাত্র ঘোষণা থাকতে পারে)।

কোকো টাচ এন্ট্রি পয়েন্ট চিহ্নিত করতে কোনও ফাইলের পরিবর্তে প্রয়োগের ক্ষেত্রে @UIApplicationMainঅ্যাট্রিবিউটটি ব্যবহার করে । কোকো একটি ন্যূনতম ফাইল ব্যবহার করত যা সহজেই ডাকা হত , তবে এক্সকোড .1.১ এর প্রয়োগ হিসাবে বৈশিষ্ট্যটি ব্যবহার করে ।UIApplicationDelegatemain.swiftmain.swiftNSApplicationMain@NSApplicationMainNSApplicationDelegate


4
আমি একটি নতুন এক্সকোড প্রকল্প তৈরি করেছি এবং আমি main.swiftকোথাও ফাইল খুঁজে পাচ্ছি না । এই ফাইলটির অবস্থান কী?
সেলভিন

কোকো এবং কোকোর টাচ অ্যাপ্লিকেশন main.swiftরয়েছে সাপোর্টিং ফাইল গ্রুপ, কেবল কল করার জন্য কনফিগার করা NSApplicationMain
নাথান

4
সমর্থনকারী ফাইল গ্রুপে এটি নেই। এটি প্রকল্পের কোথাও নয়।
সেলভিন

1
দুঃখিত, আমি কোকো টাচ সম্পর্কে ভুল ছিল কিন্তু কোকো সম্পর্কে সঠিক ছিল। আমার আপডেট হওয়া উত্তরটি দেখুন
নাথান

অবশ্যই, এমনকি কোকো টাচে আপনি তৈরি এবং ব্যবহার করতে পারেন main.swift
সুলতান

40

ইন AppDelegate.swiftফাইল আপনি দেখতে পারেন @UIApplicationMain
অ্যাপডেলিগেট হ'ল প্রাথমিক প্রবেশ ফাইল।

মূলত: main.mএবং AppDelegate.mধরণ মধ্যে মিশে গিয়ে তৈরি হয় SwiftশুধুAppDelegate.swift


2
@ নাথান তিনি আইওএস 8 ট্যাগ করেছেন Cocoa-Touch, আমার উত্তরটি সঠিক।

ভাল লাগছিল, আমি ভাবছিলাম কীভাবে আমি মেইন.এম দ্রুতগতিতে পরিবর্তন করতে পারি এবং আমি একটি জিনিসও পাইনি।
জলিল

28

আপনি ফাইল এবং সূচনা পড়তে চাইতে পারেন

ব্যতিক্রম হ'ল "মেইন.সুইফ্ট" নামে একটি বিশেষ ফাইল, যা অনেকটা খেলার মাঠের ফাইলের মতো আচরণ করে তবে এটি আপনার অ্যাপ্লিকেশনটির সোর্স কোড দিয়ে তৈরি। "Main.swift" ফাইলের মধ্যে শীর্ষ স্তরের কোড থাকতে পারে এবং অর্ডার-নির্ভর নিয়মগুলিও প্রযোজ্য। কার্যত, "main.swift" এ চালানোর জন্য কোডের প্রথম লাইনটি স্পষ্টভাবে প্রোগ্রামের প্রধান প্রবেশপথ হিসাবে সংজ্ঞায়িত করা হয়। এটি ন্যূনতম সুইফ্ট প্রোগ্রামকে একক লাইন হতে দেয় - যতক্ষণ না সেই লাইনটি "মেইন.সুইফ্ট" এ থাকে।

এক্সকোডে ম্যাক টেমপ্লেটগুলি একটি "মেইন.সুইফ্ট" ফাইল অন্তর্ভুক্ত করার জন্য ডিফল্ট, তবে আইওএস অ্যাপ্লিকেশনগুলির জন্য নতুন আইওএস প্রকল্পের টেম্পলেটগুলির জন্য ডিফল্ট হ'ল ইউআইএপ্লিকেশনমাইনকে একটি নিয়মিত সুইফট ফাইলটিতে যুক্ত করা। এটি সংযুক্তকারীটি আপনার আইওএস অ্যাপ্লিকেশনের জন্য একটি প্রধান এন্ট্রি পয়েন্ট সংশ্লেষিত করে এবং একটি "মেইন.সুইফ্ট" ফাইলের প্রয়োজনীয়তা দূর করে।

বিকল্পভাবে, আপনি উদ্দেশ্যমূলক-সি-তে লিখিত প্রধান প্রয়োগের সাথে সংযোগ স্থাপন করতে পারেন, যখন ক্রমবর্ধমানভাবে উদ্দেশ্যপ্রণালী-সি থেকে সুইফটে প্রকল্পগুলি স্থানান্তরিত হয়।


3
আমি এটি আইওএস-এ কীভাবে এন্ট্রি পয়েন্ট সেট আপ করা যায় তার একটি উপায় উন্নত এবং উচ্চ স্তরের ব্যাখ্যা বলে মনে করেছি।
স্টিভেন

ভাল উত্তর, এবং ভাল লিঙ্ক। তারপরে আমি কোড দেওয়ার জন্য একটি ভাল জায়গা পেয়েছি যা "প্রাথমিক" চালানোর প্রয়োজন। অ্যাপের প্রতিনিধি পদ্ধতিগুলির মধ্যে একটি ব্যবহার না করে আমি কেবল অ্যাপের প্রতিনিধিটির উপর দিয়ে ওভাররাইড করি এবং সেখানে এটি করি। আমি এটি ব্যবহার করেছি যেমন ডিফল্ট লগিং স্তর সেট আপ করতে।
চার্লস

1

সুইফট অ্যাপগুলিতে বৈশিষ্ট্য রয়েছে:

  • @UIApplicationMain (কোকো টাচ)
  • @NSApplicationMain (কোকো)

অ্যাপ্লিকেশনটির প্রবেশের স্থানটি সুইফ্ট সংকলককে বলুন।

হুডের নীচে সুইফ্ট সংকলকটি যা করে তা হ'ল এটি একটি mainফাংশন তৈরি করে যা মূলত অবজেক্টিভ-সি অ্যাপ্লিকেশনগুলির মতোই দেখা যায় এবং এই পদ্ধতিটিকে অ্যাপের প্রবেশের পয়েন্ট হিসাবে বিবেচনা করে (অ্যাপ্লিকেশন প্রক্রিয়া শুরু করার সময় বলা হয় এমন প্রথম পদ্ধতি)।

আপনি যদি সুইফ্ট সংকলক Mainবৈশিষ্ট্যগুলির সাথে কী করেন, ওএস কীভাবে অ্যাপ্লিকেশনের প্রবেশের স্থানটি জানতে পারে তা সম্পর্কে আরও জানতে চাইলে আমি আপনাকে এই নিবন্ধটি পড়তে উত্সাহিত করছি: আইওএস অ্যাপের এন্ট্রি পয়েন্টটি বোঝা


1

সুইফ্ট 5.3 এ একটি নতুন @mainঅ্যাট্রিবিউট রয়েছে যা আপনাকে আপনার প্রজেক্টে কেবলমাত্র না হয়ে প্রবেশের স্থানটি নিয়ন্ত্রণ করতে দেয় main.swift। কেবলমাত্র একটি প্রধান প্রবেশ হতে পারে এবং আপনার কাছে কোনও main.swiftফাইল এবং কোনও বৈশিষ্ট্য থাকতে পারে না @main। আরও তথ্যের জন্য https://github.com/apple/swift-evolution/blob/master/proposals/0281-main-attribute.md দেখুন ।

@main
struct App {
    static func main() {
        print("Starting.")
    }
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.