සුභ පැතුම්
Xcode හි නව අනුවාදය (11.2.1) දැන් ලබා ගත හැකි අතර එය මෙම ගැටළුව මඟහරවා ගත හැකි හොඳම ක්රමයයි.
වර්කරවුන්ඩ්ස්
Oj මොජ්ටාබා හොසේනි මා යෝජනා කළ විසඳුම වූයේ ස්ටැක් ඕවර්ෆ්ලෝ හරහා මගේ සෙසු සංවර්ධකයින්ගේ උපකාරය සහ සහභාගීත්වයයි. ඇපල් විසින් නව අනුවාදය ප්රකාශයට පත් කළ විට මෙම ගැටළුව නැති වී යන බව ඔබ, මම සහ මෙහි සිටින අනෙකුත් සියලුම සංවර්ධකයින් දැනටමත් දනිමු.
නමුත් හැම දෙයක්ම හැර
පෞද්ගලික ඒපීඅයි කිසිවක් සම්බන්ධ නොවන බැවින් ඉහත සඳහන් විසඳුම ඇපල් රිවීව් විසින් අනිවාර්යයෙන්ම පිළිගනු ලැබීය. මෙම ප්රවේශය වැනි දේපල නිර්මාණය කිරීමට බෙහෙවින් සමාන ය
terinterface UITextView (පිරිසැලසුම)
හෝ
UITextView + Layout.h
එබැවින් ඔබ දේපල නිර්මාණය කරන විට ඔබ කෙලින්ම ඇපල් පුද්ගලික සංරචක භාවිතා කරන අතර ඔබ රඳා පවතින හෝ අවශ්යතාවය අනුව ඒවා නැවත වෙනස් කරයි.
සරල උදාහරණය AMFNetworking පන්ති ය
- (void)setImageWithURL:(NSURL *)url {
[self setImageWithURL:url placeholderImage:nil];
}
මම චෝදනාවෙන් ඉවරයි කියලා හිතනවා
පහත දැක්වෙන පිළිතුර නම්, එක්ස්කෝඩ් ආපසු හරවා යැවීමට ඔබ මුලින් යෝජනා කළ පරිදි සංවර්ධකයාට දිගටම සංවර්ධනය කිරීමට හැකිවන පරිදි මගේ පැත්තෙන් යම් උපකාරයක් පමණි. Xcode හි නව අනුවාදය ළඟදීම නිකුත් කරන බව අප කවුරුත් දන්නා බැවින් මෙය නැවත 8 GB Xcode බාගත කිරීම නරක පුරුද්දකි.
එය Xcode 11.2.1 හි සවි කර ඇති අතර, මට Xcode 11.2 සඳහා එක් විසඳුමක් ලබා දී ඇති අතර එමඟින් ඔබට මෙම බිඳවැටීමෙන් මිදිය හැකිය:
*** හඳුනා නොගත් ව්යතිරේකයක් හේතුවෙන් යෙදුම අවසන් කිරීම 'NSInvalidUnarchiveOperationException', හේතුව: '_UITextLayoutView නම් පංතිය ක්ෂණිකව ස්ථාපනය කිරීමට නොහැකි වූ නිසා _UITextLayoutView නම් පංතියක් හමු නොවීය; පන්තිය ප්රභව කේතයෙන් අර්ථ දැක්විය යුතුය හෝ පුස්තකාලයකින් සම්බන්ධ කළ යුතුය (පන්තිය නිවැරදි ඉලක්කයේ කොටසක් බව සහතික කරන්න) '
විසඳුමක්
"DEAD_CODE_STRIPPING" සඳහා ගොඩනැඟිලි සැකසුම් සෙවුමට ගොස් එය NO ලෙස සකසන්න
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;
}
කේතය සම්පාදනය කරන්න, එවිට ඔබට ධාවනය වන යෙදුමක් ඇත :)