首页 > 解决方案 > Xamarin iOS 特征收集警告错误

问题描述

在我的项目中,我使用了此链接中描述的实现

https://nshint.github.io/blog/2015/09/23/uitraitcollection-trick

但是,在构建项目时,控制台会显示很多警告,如下所示

[断言] 特征环境返回了一个特征集合,其中包含不允许未指定的特征的未指定值。这是一个严重的应用程序错误,将导致未定义的行为。此问题可能是由于您的类覆盖了不支持的 traitCollection 属性 getter。如果您尝试覆盖特征,请确保使用适当的 API。

我已经查看并尝试了不同的实现,但它们都使用情节提要,我不在我的项目中使用它(我只使用 xib)。

这是我需要担心的事情还是这是一个很好的实现?

public abstract partial class BaseControllerView<TPresenter> : UIViewController, IView
    where TPresenter : BasePresenter
{
    public BaseControllerView(string nibName, NSBundle bundle)
        : base(nibName, bundle)
    {
    }


    public override UITraitCollection TraitCollection => GetTraitCollection();

    ....

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();
    }

    UITraitCollection GetTraitCollection()
    {
        if (!IsLandscape)
        {
            var traisCollection = new[] { UITraitCollection.FromHorizontalSizeClass(UIUserInterfaceSizeClass.Compact), UITraitCollection.FromVerticalSizeClass(UIUserInterfaceSizeClass.Regular) };
            return UITraitCollection.FromTraitsFromCollections(traisCollection);
        }
        else
        {
            var traisCollection = new[] { UITraitCollection.FromHorizontalSizeClass(UIUserInterfaceSizeClass.Compact), UITraitCollection.FromVerticalSizeClass(UIUserInterfaceSizeClass.Compact) };
            return UITraitCollection.FromTraitsFromCollections(traisCollection);
        }
    }

标签: iosobjective-cswiftxamarinxamarin.ios

解决方案


推荐阅读