当前位置: 首页 > news >正文

周口市规划建设局网站asp.net 网站开发 教程

周口市规划建设局网站,asp.net 网站开发 教程,如何做好集团网站建设,网站开发属于软件吗以下是2018年10月23日更新 经过大约一个月的时间的适配#xff0c;项目正式使用XCode10(以下简称为10 or XC10)大部分库都升级为Swift4.2#xff08;以下简称为 4.2 or S4.2#xff09;#xff0c;下面是适配过程中遇到的一些坑。 1. Swift4、Swift4.2混编 如果你对项目是小…以下是2018年10月23日更新 经过大约一个月的时间的适配项目正式使用XCode10(以下简称为10 or XC10)大部分库都升级为Swift4.2以下简称为 4.2 or S4.2下面是适配过程中遇到的一些坑。 1. Swift4、Swift4.2混编 如果你对项目是小的独立项目完全可以全部升级为4.2你可以略过第一条如果你依赖了一些第三方的库且没有升级4.2你可以继续看这一条。目前测试的结果来看Swift4 和 S4.2的混编没有什么大的问题如果你是通过cocoapod引入的可以在Podfile中加入如下代码 swift_41_pod_targets [your_target_name] post_install do |installer|installer.pods_project.targets.each do |target|if swift_41_pod_targets.include?(target.name)target.build_configurations.each do |config|config.build_settings[SWIFT_VERSION] 4.1endendend end 复制代码2. NSDataAsset 升级XC10和S.2之前项目里面有些对 NSDataAsset 的错误使用 用‘NSDataAsset’读ImageAsset中的图片这个是不正确的但是却可以工作这次升级修复了这个BUG。 正确的做法使用DataAsset然后才可以用‘NSDataAsset’读取数据我由于不够认真且经验不足还以为是个BUG给Apple提了个BUG。。。[捂脸] 3. 第三方库的重命名 typealias 为了方便的适配S4.2对UIKit中的重命名有些第三方使用typealias对一些类型进行了重命名以 RxSwift 为例子RxSwift中就有如下代码 #if swift(4.2)public typealias UIControlEvents UIControl.Event private #endif 复制代码这会导致一些重命名的类型即使不改也不会报错但是一旦去掉了对某个库的依赖就会引入新的问题。 4.Delegate 的 Access Modifier 在升级S4.2过程中XC偶尔会提示需要给某些Delegate方法添加 private修饰符不要为了消除这个⚠️添加private可能会导致Delegate永远不被调到另外如果是一个public或者open的class协议方法记得也要加上public否则会出一样的问题具体原因我还在测试但是现象是这样的有新的见解欢迎评论区讨论。 5. 机型适配问题iPhone XS Max字体变大 有些同事遇到XC9构建的安装包在iPhone XS Max上会有字体变大的情况这个貌似是普遍现象微信也有使用XC10构建安装包可以解决这个问题但是会遇到问题6 ###6. iOS9.3以下系统Crash率飙升 使用XC10构建安装包可以解决问题5但是iOS9.3以下的系统Crash到让你怀疑人生 以下是2018年9月18日内容 AVAudioSession.sharedInstance().setCategory() disappeared Swift 4.2 中 iOS10以下不能用 AVAudioSession.sharedInstance() setCategory 可选方案: 使用OC实现该部分然后使用Swift调用放弃 iOS9用户体验参考地址 do {if #available(iOS 11.0, *) {try audioSession.setCategory(.playback, mode: .default, policy: .longForm, options: [])} else if #available(iOS 10.0, *) {try audioSession.setCategory(.playback, mode: .default, options: [])} else {// Compiler error: setCategory is unavailable in Swifttry audioSession.setCategory(AVAudioSession.Category.playback)} } catch let error {print(Unable to configure audio sesson category: \(error)) } 复制代码 NSUnderlineStyle(.patternSolid、.none) disappeared 可选方案: .none mutableAttributedString.addAttribute(NSAttributedString.Key.underlineStyle, value: NSUnderlineStyle.none.rawValue, range: range) ^~~~~ none is unavailable: use [] to construct an empty option set Wrong: mutableAttributedString.addAttribute(NSAttributedString.Key.underlineStyle, value: [], range: range) Right: mutableAttributedString.addAttribute(NSAttributedString.Key.underlineStyle, value: 0, range: range) 使用 CTUnderlineStyleModifiers // 没有测试 NSUnderlineStyle.init(rawValue: Int(CTUnderlineStyleModifiers.patternSolid.rawValue)) 使用其他默认值 下面是Rename操作 UIKit #Swift4/UIKit UITableViewCell Swift 4Swift 4.2UITableViewCellStyleUITableViewCell.CellStyleUIEvent Swift 4Swift 4.2UIEventSubtypeUIEvent.EventSubtypeUITableView Swift 4Swift 4.2UITableViewScrollPositionUITableView.ScrollPositionUITableViewAutomaticDimensionUITableView.automaticDimensionUITableViewCellEditingStyleUITableViewCell.EditingStyleUITableViewRowAnimationUITableView.RowAnimationUITableViewStyleUITableView.StyleUITableViewCellAccessoryTypeUITableViewCell.AccessoryTypeUIControl Swift 4Swift 4.2UIControlEventsUIControl.EventUIWindow Swift 4Swift 4.2UIWindowLevelAlertUIWindow.Level.alertUIKeyboardFrameEndUserInfoKeyUIResponder.keyboardFrameEndUserInfoKeyUIKeyboardFrameBeginUserInfoKeyUIResponder.keyboardFrameBeginUserInfoKeyUIKeyboardAnimationDurationUserInfoKeyUIResponder.keyboardAnimationDurationUserInfoKeyUIKeyboardAnimationCurveUserInfoKeyUIResponder.keyboardAnimationCurveUserInfoKeyUIKeyboardIsLocalUserInfoKeyUIResponder.keyboardIsLocalUserInfoKeyUIWindowDidBecomeVisibleUIWindow.didBecomeVisibleNotificationUIWindowDidBecomeHiddenUIWindow.didBecomeHiddenNotificationUIWindowDidBecomeKeyUIWindow.didBecomeKeyNotificationUIWindowDidResignKeyUIWindow.didResignKeyNotificationUIKeyboardWillShowUIResponder.keyboardWillShowNotificationUIKeyboardDidShowUIResponder.keyboardDidShowNotificationUIKeyboardWillHideUIResponder.keyboardWillHideNotificationUIKeyboardDidHideUIResponder.keyboardDidHideNotificationUIViewController Swift 4Swift 4.2open func addChildViewController(_ childController: UIViewController)open func addChild(_ childController: UIViewController)open func willMove(toParentViewController parent: UIViewController?)open func willMove(toParent parent: UIViewController?)open func didMove(toParentViewController parent: UIViewController?)open func didMove(toParent parent: UIViewController?)open func removeFromParentViewController()open func removeFromParent()UIActivity Swift 4Swift 4.2UIActivityTypeUIActivity.ActivityTypeUIActivityIndicatorView Swift 4Swift 4.2activityIndicator.activityIndicatorViewStyleactivityIndicator.styleUIAlertController Swift 4Swift 4.2UIAlertActionStyleUIAlertAction.StyleUIAlertControllerStyleUIAlertController.StyleUIPageViewController Swift 4Swift 4.2UIPageViewControllerNavigationDirectionUIPageViewController.NavigationDirectionUIPageViewControllerSpineLocationUIPageViewController.SpineLocationUIPageViewControllerNavigationOrientationUIPageViewController.NavigationOrientationUIPageViewControllerTransitionStyleUIPageViewController.TransitionStyleUIPageViewControllerOptionsKeyUIPageViewController.OptionsKeyUINavigationController Swift 4Swift 4.2UINavigationControllerOperationUINavigationController.OperationUIGestureRecognizer Swift 4Swift 4.2UIGestureRecognizerStatePossibleUIGestureRecognizer.State.possibleUIGestureRecognizerStateBeganUIGestureRecognizer.State.beganUIGestureRecognizerStateChangedUIGestureRecognizer.State.changedUIGestureRecognizerStateEndedUIGestureRecognizer.State.endedUIGestureRecognizerStateCancelledUIGestureRecognizer.State.cancelledUIGestureRecognizerStateFailedUIGestureRecognizer.State.failedUIGestureRecognizerStateRecognizedUIGestureRecognizer.State.recognizedNSLayoutFormat Swift 4Swift 4.2NSLayoutFormatOptionsNSLayoutConstraint.FormatOptionsUIEdgeInsets Swift 4Swift 4.2public func UIEdgeInsetsMake(_ top: CGFloat, _ left: CGFloat, _ bottom: CGFloat, _ right: CGFloat) - UIEdgeInsetsUIEdgeInsets(top: CGFloat, left: CGFloat, bottom: CGFloat, right: CGFloat)public func UIEdgeInsetsInsetRect(_ rect: CGRect, _ insets: UIEdgeInsets) - CGRectpublic func inset(by insets: UIEdgeInsets) - CGRectUIFontDescriptor Swift 4Swift 4.2UIFontDescriptorSymbolicTraitsUIFontDescriptor.SymbolicTraitsUIImage Swift 4Swift 4.2UIKIT_EXTERN NSData * __nullable UIImagePNGRepresentation(UIImage * __nonnull image);public func pngData() - Data?NSData * __nullable UIImageJPEGRepresentation(UIImage * __nonnull image, CGFloat compressionQuality);public func jpegData(compressionQuality: CGFloat) - Data?UIApplication Swift 4Swift 4.2UIApplicationDidEnterBackgroundUIApplication.didEnterBackgroundNotificationUIApplicationWillEnterForegroundUIApplication.willEnterForegroundNotificationUIApplicationDidFinishLaunchingUIApplication.didFinishLaunchingNotificationUIApplicationDidBecomeActiveUIApplication.didBecomeActiveNotificationUIApplicationWillResignActiveUIApplication.willResignActiveNotificationUIApplicationDidReceiveMemoryWarningUIApplication.didReceiveMemoryWarningNotificationUIApplicationWillTerminateUIApplication.willTerminateNotificationUIApplicationSignificantTimeChangeUIApplication.significantTimeChangeNotificationUIApplicationWillChangeStatusBarOrientationUIApplication.willChangeStatusBarOrientationNotificationUIApplicationDidChangeStatusBarOrientationUIApplication.didChangeStatusBarOrientationNotificationUIApplicationDidChangeStatusBarFrameUIApplication.didChangeStatusBarFrameNotificationUIApplicationBackgroundRefreshStatusDidChangeUIApplication.backgroundRefreshStatusDidChangeNotificationUIApplicationProtectedDataWillBecomeUnavailableUIApplication.protectedDataWillBecomeUnavailableNotificationUIApplicationProtectedDataDidBecomeAvailableUIApplication.protectedDataDidBecomeAvailableNotificationUIApplicationUserDidTakeScreenshotUIApplication.userDidTakeScreenshotNotificationUIApplicationOpenSettingsURLStringUIApplication.openSettingsURLStringUIApplicationLaunchOptionsKeyUIApplication.LaunchOptionsKeyUIInterfaceOrientationIsLandscape()UIApplication.shared.statusBarOrientation.isLandscapeUIView Swift 4Swift 4.2func bringSubview(toFront view: UIView)func bringSubviewToFront(_ view: UIView)UIViewAnimationOptionsUIView.AnimationOptions()Foundation NSAttributedString Swift 4Swift 4.2NSAttributedStringKeyNSAttributedString.KeyQuartzCore CAShapeLayer Swift 4Swift 4.2kCALineCapRoundCAShapeLayerLineCap.roundkCALineCapButtCAShapeLayerLineCap.buttkCALineCapSquareCAShapeLayerLineCap.squarekCALineJoinMiterCAShapeLayerLineJoin.miterkCALineJoinRoundCAShapeLayerLineJoin.roundkCALineJoinBevelCAShapeLayerLineJoin.bevelkCAFillRuleNonZeroCAShapeLayerFillRule.nonZerokCAFillRuleEvenOddCAShapeLayerFillRule.evenOdd参考资料 Swift-Migration-4.2 转载于:https://juejin.im/post/5ba0dfb9e51d450e4a1babcb
http://www.pierceye.com/news/561080/

相关文章:

  • 社区网站制作教程社交媒体营销
  • 云南省建设工程质量监督管理站网站房产网站推广
  • 做网站挣钱吗营销导向的企业网站建设步骤
  • 优化网站 优帮云网站是意识形态建设
  • 网站内容建设运维服务wordpress envato主题
  • 响应式网站的几种尺寸推广网站的几种方法
  • php 打开网站东莞网站建设网页推广
  • 正品海外购网站有哪些公司网站开发费用兴田德润在哪儿
  • 怎样做编辑发到网站自由建网站的网络程序
  • 网站开发 卡片cms建站系统 下载
  • 新浪门户网站是谁做的科技网站建设
  • 免费网站建设合同书山西网站建设企业
  • 网站建设空间什么意思学做网站什么语言合适
  • 网站开发的形式有( )友情链接英文
  • 帝国网站管理系统前台免费photoshop下载
  • 深圳一百讯网站建设wordpress汉化包
  • 建设一个班级网站的具体步骤自己的网站源代码一片空白
  • 初创公司 建网站wordpress 模板获取数据库
  • 怎么在网站做推广不要钱六安网约车平台
  • 申晨推荐的营销网站做卖挖掘机的网站
  • 网站广告牌制作教程来几个好看的网站
  • php企业网站源码蓝色印度喜欢用什么框架做外贸网站
  • 网站建设教程最新资讯wordpress说说伪静态
  • 长春建站程序网络营销推广方法脑24金手指效率高
  • 专门做房地产设计的图片网站在安徽省住房和城乡建设厅网站
  • 怎样制作图片网站广告制作公司电话
  • 电子商城网站开发教程湖北网站建设路
  • 广告公司网站模版快速seo关键词优化技巧
  • whois哪个网站好WordPress判断文章形式
  • 昆明网站建设排名网站推广营销策划方案