আমি যখন আমার আইওএস অ্যাপ্লিকেশনটি চালাচ্ছি তখন কালো স্ক্রীন


12

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

আমি এক্সকোড 11 (সুইফট 5) এ কাজ করছি এবং এই বার্তাটি আউটপুটে প্রদর্শিত হবে:

[দৃশ্যের কনফিগারেশন] তথ্য.পলিট কনফিগারেশন "ডিফল্ট কনফিগারেশন" UIWindowSceneSessionRole অ্যাপ্লিকেশনটিতে UISceneDelegateClassName কী রয়েছে, তবে "gina.SceneDelegate" নামের ক্লাস লোড করা যায়নি

আমি জানি না আমার ভুলটি কোথায়?

চলমান যখন কালো পর্দা



আমি মনে করি আপনি আপনার প্রকল্প থেকে আপনার দৃশ্যধারণ ক্লাসটি সরিয়েছেন
আলফি

নীচের অনেকগুলি উত্তর ত্রুটির বিন্দু মিস করে এবং এমন ফিক্সগুলি বর্ণনা করেছে যা প্রশ্নের সঠিক ত্রুটির সাথে প্রাসঙ্গিক নয়। আমার ক্ষেত্রে, আমি কেবলমাত্র SceneDelegateআমার টার্গেটটিতে এটি যুক্ত করতে ভুলে গিয়েছিলাম এবং বাক্সটি এটি ঠিক করে দিয়েছে checking
ওয়েইন

উত্তর:


32

আইওএস 13

শুধুমাত্র লক্ষ্য 13 বা ততোধিক হয়।

SceneDelegateআইওএস 13 এর আগে সমর্থিত নয় । আপনি যদি আইওএস 13 এর পূর্বে আইওএসটি ব্যবহার করতে SceneDelegateএবং আইওএস সমর্থন করতে চান তবে আপনাকে আপনার প্রকল্পে কিছু পরিবর্তন যুক্ত করতে হবে।

  1. SceneDelegate.swift ফাইলে পুরো ক্লাসে প্রাপ্যতা বৈশিষ্ট্য যুক্ত করুন।
@available(iOS 13.0, *)
class SceneDelegate: UIResponder, UIWindowSceneDelegate {
   ...
}
  1. AppDelegate.swift ফাইলটিতে দুটি নতুন SceneDelegateপদ্ধতি রয়েছে। তাদের সাথে প্রাপ্যতা বৈশিষ্ট্য যুক্ত করুন।
@available(iOS 13.0, *)
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
  ...
}

@available(iOS 13.0, *)
func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) {
  ...
}
  1. শেষ অবধিUIWindow , AppDelegate.swift এ অবজেক্ট যুক্ত করুন ।
class AppDelegate: UIResponder, UIApplicationDelegate {

    //Add this line
    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        return true
    }

    ...
}

আইওএস 12 এবং তার আগেরটি

AppDelegateএকটি UIWindowসম্পত্তি প্রয়োজন। আইওএস 13SceneDelegate নতুন প্রকল্পে ব্যবহার করে। UIWindowঅবজেক্টটি নির্দিষ্ট করুন এবং SceneDelegate.swift ফাইলটি সরান remove

আপনি যদি SceneDelegateপ্রকল্পটি থেকে সরিয়ে ফেলে থাকেন তবে আপনাকে অবশ্যই অ্যাপ্লিকেশন সিন ম্যানিফেস্ট ডিকশনারিটি তথ্য.পালিস্ট থেকে অপসারণ করতে হবে ।

Info.plist


দুর্দান্ত, আপনাকে ধন্যবাদ
মোহাম্মদ রাজীপুর

1

আপনার উইন্ডোটি এভাবে শুরু করতে হবে:

let window = UIWindow(windowScene: scene as! UIWindowScene)

এবং এগুলি তথ্য.প্লেস্টে যুক্ত করুন:

<key>UIApplicationSceneManifest</key>
    <dict>
        <key>UIApplicationSupportsMultipleScenes</key>
        <true/>
        <key>UISceneConfigurations</key>
        <dict>
            <key>UIWindowSceneSessionRoleApplication</key>
            <array>
                <dict>
                    <key>UILaunchStoryboardName</key>
                    <string>LaunchScreen</string>
                    <key>UISceneConfigurationName</key>
                    <string>Default Configuration</string>
                    <key>UISceneDelegateClassName</key>
                    <string>$(PRODUCT_MODULE_NAME).SceneDelegate</string>
                </dict>
            </array>
        </dict>
    </dict>

এটাই আপনার করা দরকার।


আমার একই সমস্যা ছিল, উপসর্গ $(PRODUCT_MODULE_NAME).আমার সমস্যাটি সমাধান করেছে।
শন হাওল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.