উল্লেখ্য সিনট্যাক্স জুন 2019 সালে উপর XCode 10.1 এবং সুইফট 5 আপডেট করা হয়েছে (ক্রেডিট অনুজ্জ্বল এর উত্তর এখানে && কাঠ বার্নিশ করার কাজের Fam এর উত্তর এখানে ), আপনি যদি এই পূর্ববর্তী syntaxes জন্য সম্পাদন করা অধ্যায় দিকে তাকাও।
ঠিক আছে, আমি সমাধানটি খুঁজে পেয়েছি
প্রথমে, আমি লক্ষ্য করেছি যে, অ্যাপডেলিগেট.সুইফ্ট ফাইলের শীর্ষে, এই লাইনটি রয়েছে
@UIApplicationMain
যেহেতু এই লাইনটি কোনও স্কোপের বাইরে (এটি ফাইল স্তরের), এটি অবিলম্বে কার্যকর করা হয়েছে, এবং আমি ধরে নিই যে সংকলকটি এটি একটি স্ট্যান্ডার্ড মূল ফাংশনে অনুবাদ করে।
সুতরাং, আমি এটি করেছি, একটি নতুন সুইফট-কেবল অ্যাপ্লিকেশন থেকে শুরু করে:
- মন্তব্য সমূহ
@UIApplicationMain
- এর মতো একটি মেইন.সুইফ্ট ফাইল যুক্ত হয়েছে (FLApplication আমার সাবক্লাস)।
গুরুত্বপূর্ণ ফাইল নামের হতে হবে main.swift, যেহেতু শীর্ষ স্তরের বিবৃতি অন্যান্য ফাইল সমর্থিত নয়! আপনি অন্য কোনও ফাইলের মধ্যে ইউআইএপ্লিকেশন মেইন () কলটি যুক্ত করতে পারবেন না, অন্যথায় আপনি এই ত্রুটিটি পাবেন:
শীর্ষ স্তরে প্রকাশের অনুমতি নেই
এটি মেইন.সুইফ্ট ফাইল
UIApplicationMain(
CommandLine.argc, CommandLine.unsafeArgv,
NSStringFromClass(FLApplication.self), NSStringFromClass(AppDelegate.self)
)
তারপরে, এই কোড সহ ইউআইএপ্লিকেশন সাবক্লাস, FLApplication.swift এর জন্য একটি সুইফ্ট ফাইল তৈরি করুন:
import UIKit
import Foundation
class FLApplication: UIApplication {
override func sendEvent(_ event: UIEvent) {
super.sendEvent(event)
print("send event")
}
}
এখন, ইউআইএপ্লিকেশনটি সঠিকভাবে উপশ্রেণিত এবং আপনি লগটিতে "ইভেন্ট প্রেরণ করুন" বার্তা দেখতে পাবেন
পুরানো সম্পাদনাগুলি
রেফারেন্সের জন্য, যেহেতু এটি সংস্করণ 1 থেকে সংস্করণ 3 তে অনেক পরিবর্তন হয়েছে, তাই আমি পূর্ববর্তী সমস্ত সম্পাদনাগুলি এখানে রেখেছি
সম্পাদনা - মার্চ 2015
হু জুনফেঙের মন্তব্য অনুসারে এখন UIApplicationMain
সুইট ল্যাঙ্গুয়েজ রেফারেন্সের বৈশিষ্ট্য বিভাগে মূল কথা এবং মেইন.সুইফ্ট ফাইলটি নথিভুক্ত করা হয়েছে: লিঙ্ক
এক্সকোড be.৩ বিটাতে টমাস ভার্বেকের মন্তব্য অনুসারে, আপনি দেখতে পাবেন যে সি_আরজিসি এবং সি_আরজিভি যথাক্রমে প্রসেস.আরজিসি এবং প্রসেস.আনস্যাফএআরজিভিতে নামকরণ করা হয়েছে। আপনার ইউআইএআইপ্লিকেশনমিন কলকে মূল.ইউইফ্ট ফাইলটিতে আপডেট করতে হবে:
UIApplicationMain(Process.argc, Process.unsafeArgv, NSStringFromClass(FLApplication), NSStringFromClass(AppDelegate))
প্রাক-এক্সকোড 8 সিনট্যাক্সটি ছিল
import Foundation
import UIKit
UIApplicationMain(C_ARGC, C_ARGV, NSStringFromClass(FLApplication), NSStringFromClass(AppDelegate))
সম্পাদনা - ডিসি 2016
বিটা 6 এর আগে এক্সকোড 8 এর সমাধান
import Foundation
import UIKit
UIApplicationMain(
CommandLine.argc,
UnsafeMutableRawPointer(CommandLine.unsafeArgv)
.bindMemory(
to: UnsafeMutablePointer<Int8>.self,
capacity: Int(CommandLine.argc)),
NSStringFromClass(FLApplication.self),
NSStringFromClass(AppDelegate.self)
)
UIApplicationMain()
শ্রেণীর নাম যুক্ত করার জন্য কেন প্যারামিটারগুলি পরিবর্তন করাNSPrincipalClass
পছন্দনীয় হবে?