অভিনঁদন
এক্সকোডের নতুন সংস্করণ (১১.২.১) এখন উপলভ্য যা এই সমস্যা থেকে মুক্তি পাওয়ার সেরা উপায়।
সমাধান নীচে উপস্থিত
@ মজতাবা হোসেইনি আমার প্রস্তাবিত সমাধান হ'ল আমার পক্ষ থেকে স্ট্যাক ওভারফ্লোতে আমার সহযোগী বিকাশকারীদের অংশগ্রহণ থেকে। আপনি, আমি এবং এখানকার বাকী সমস্ত বিকাশকারী ইতিমধ্যে জানেন যে অ্যাপল যখন নতুন সংস্করণ ঘোষণা করবে তখন এই সমস্যাটি চলে যাবে।
তবে পাশে সব কিছু
উপরে উল্লিখিত সমাধানটি অবশ্যই কোনও অ্যাপল রিভিউ না থাকায় অ্যাপল পর্যালোচনা গ্রহণ করেছে by এই পদ্ধতির তৈরি সম্পত্তি হিসাবে খুব অনুরূপ
@ ইন্টারফেস ইউআইটিেক্সটভিউ (লেআউট)
অথবা
UITextView + + Layout.h
সুতরাং আপনি যখন সম্পত্তি তৈরি করছেন আপনি সরাসরি অ্যাপল বেসরকারী উপাদানগুলি ব্যবহার করছেন এবং আপনার নির্ভরতা বা প্রয়োজনীয়তা অনুসারে এগুলি পুনরায় মডিউল করছেন।
সরল উদাহরণ হ'ল এএমএফ নেটওয়ার্কিং ক্লাস
- (void)setImageWithURL:(NSURL *)url {
[self setImageWithURL:url placeholderImage:nil];
}
আশা করি অভিযোগের সাথে আমার কাজ শেষ হয়েছে
বিকাশকারীদের বিকাশ অব্যাহত রাখতে সক্ষম হবার জন্য নীচের উত্তরটি আমার পক্ষ থেকে কিছুটা সহায়তা ছিল কারণ আপনি প্রাথমিকভাবে এক্সকোডকে পিছনে রোল করার জন্য বিকাশকারীকে প্রস্তাব করেছিলেন। 8 জিবি এক্সকোডটি আবার ডাউনলোড করা এটি একটি খারাপ অভ্যাস ছিল যেহেতু আমরা সবাই জানি যে এক্সকোডের নতুন সংস্করণটি শীঘ্রই প্রকাশিত হবে।
এটি Xcode 11.2.1 এ স্থির করা অবস্থায়, আমি Xcode 11.2 এর জন্য একটি সমাধান পেয়েছি যার মাধ্যমে আপনি এই ক্রাশটি থেকে মুক্তি পেতে পারেন:
*** অপ্রত্যাশিত ব্যতিক্রম 'এনএসআইএনডাওলিউডআর্কিটিভঅপ্রেশন এক্সপেশন' এর কারণে অ্যাপ্লিকেশনটি সমাপ্ত করা হচ্ছে, কারণ: '_UITextLayoutView নামে কোনও শ্রেণি ইনস্ট্যান্ট করা যায়নি কারণ _UITextLayoutView নামে কোনও শ্রেণি খুঁজে পাওয়া যায় নি; ক্লাসটি উত্স কোডে সংজ্ঞায়িত করা উচিত বা একটি লাইব্রেরি থেকে সংযুক্ত করা দরকার (ক্লাসটি সঠিক টার্গেটের অংশ কিনা তা নিশ্চিত করুন) '
সমাধান
"DEAD_CODE_STRIPPING" এর জন্য বিল্ড সেটিংস অনুসন্ধানে যান এবং এটিকে সেট করে না
DEAD_CODE_STRIPPING = NO
তারপর
UITextViewWorkaround ফাইল তৈরি করুন
UITextViewWorkaround.h
#import <Foundation/Foundation.h>
@interface UITextViewWorkaround : NSObject
+ (void)executeWorkaround;
@end
UITextViewWorkaround.m
#import "UITextViewWorkaround.h"
#import <objc/runtime.h>
@implementation UITextViewWorkaround
+ (void)executeWorkaround {
if (@available(iOS 13.2, *)) {
}
else {
const char *className = "_UITextLayoutView";
Class cls = objc_getClass(className);
if (cls == nil) {
cls = objc_allocateClassPair([UIView class], className, 0);
objc_registerClassPair(cls);
#if DEBUG
printf("added %s dynamically\n", className);
#endif
}
}
}
@end
এটি অ্যাপ্লিকেশন প্রতিনিধিতে কার্যকর করুন
#import "UITextViewWorkaround.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[UITextViewWorkaround executeWorkaround];
return yes;
}
কোডটি সংকলন করুন এবং আপনার একটি চলমান অ্যাপ্লিকেশনটি থাকবে :)