[registrar] Fix a generics type issue with dynamic registrar (#6646)
* [registrar] Fix a generics type issue with dynamic registrar Fixes xamarin/xamarin-macios#6567 This Fixes an issue in the registrar where the dynamic registrar misses a case to check for a NSObject constraint triggered by UIKit's `NSDiffableDataSourceSnapshot` object. This also enables the rest of missing bindings in UIKit for Xcode 11 B4 which also works as a test case for the registrar fix. Without this fix introspection test would throw an `AggregateException` and also includes `NSDiffableDataSourceSnapshotTest` to check that the created objects are usable. * Check for Xcode 11 in tests * Exclude the macOS in our UIKit tests ツ
This commit is contained in:
Родитель
67087c2282
Коммит
d095f75471
|
@ -500,7 +500,20 @@ namespace Registrar {
|
|||
constrs [i] = constr;
|
||||
}
|
||||
constrained_type = type.MakeGenericType (constrs);
|
||||
return true;
|
||||
return rv;
|
||||
}
|
||||
|
||||
if (type.IsGenericType) {
|
||||
var rv = true;
|
||||
var args = type.GetGenericArguments ();
|
||||
var constrs = new Type [args.Length];
|
||||
for (int i = 0; i < args.Length; i++) {
|
||||
Type constr;
|
||||
rv &= VerifyIsConstrainedToNSObject (args [i], out constr);
|
||||
constrs [i] = constr;
|
||||
}
|
||||
constrained_type = type.GetGenericTypeDefinition ().MakeGenericType (constrs);
|
||||
return rv;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
|
225
src/uikit.cs
225
src/uikit.cs
|
@ -21163,163 +21163,160 @@ namespace UIKit {
|
|||
UITabBarItemStateAppearance Focused { get; }
|
||||
}
|
||||
|
||||
// TODO: The following break the registrar:
|
||||
// https://github.com/xamarin/xamarin-macios/issues/6567
|
||||
[NoWatch, TV (13,0), iOS (13,0)]
|
||||
[BaseType (typeof (NSObject))]
|
||||
interface NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> : NSCopying
|
||||
where SectionIdentifierType : NSObject
|
||||
where ItemIdentifierType : NSObject {
|
||||
|
||||
// [Watch (6,0), TV (13,0), iOS (13,0)]
|
||||
// [BaseType (typeof (NSObject))]
|
||||
// interface NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> : NSCopying
|
||||
// where SectionIdentifierType : NSObject
|
||||
// where ItemIdentifierType : NSObject {
|
||||
[Export ("numberOfItems")]
|
||||
nint NumberOfItems { get; }
|
||||
|
||||
// [Export ("numberOfItems")]
|
||||
// nint NumberOfItems { get; }
|
||||
[Export ("numberOfSections")]
|
||||
nint NumberOfSections { get; }
|
||||
|
||||
// [Export ("numberOfSections")]
|
||||
// nint NumberOfSections { get; }
|
||||
[Export ("sectionIdentifiers")]
|
||||
SectionIdentifierType [] SectionIdentifiers { get; }
|
||||
|
||||
// [Export ("sectionIdentifiers")]
|
||||
// SectionIdentifierType [] SectionIdentifiers { get; }
|
||||
[Export ("itemIdentifiers")]
|
||||
ItemIdentifierType [] ItemIdentifiers { get; }
|
||||
|
||||
// [Export ("itemIdentifiers")]
|
||||
// ItemIdentifierType [] ItemIdentifiers { get; }
|
||||
[Export ("numberOfItemsInSection:")]
|
||||
nint GetNumberOfItems (SectionIdentifierType sectionIdentifier);
|
||||
|
||||
// [Export ("numberOfItemsInSection:")]
|
||||
// nint GetNumberOfItems (SectionIdentifierType sectionIdentifier);
|
||||
[Export ("itemIdentifiersInSectionWithIdentifier:")]
|
||||
ItemIdentifierType [] GetItemIdentifiersInSection (SectionIdentifierType sectionIdentifier);
|
||||
|
||||
// [Export ("itemIdentifiersInSectionWithIdentifier:")]
|
||||
// ItemIdentifierType [] GetItemIdentifiersInSection (SectionIdentifierType sectionIdentifier);
|
||||
[Export ("sectionIdentifierForSectionContainingItemIdentifier:")]
|
||||
[return: NullAllowed]
|
||||
SectionIdentifierType GetSectionIdentifierForSection (ItemIdentifierType itemIdentifier);
|
||||
|
||||
// [Export ("sectionIdentifierForSectionContainingItemIdentifier:")]
|
||||
// [return: NullAllowed]
|
||||
// SectionIdentifierType GetSectionIdentifierForSection (ItemIdentifierType itemIdentifier);
|
||||
[Export ("indexOfItemIdentifier:")]
|
||||
nint GetIndex (ItemIdentifierType itemIdentifier);
|
||||
|
||||
// [Export ("indexOfItemIdentifier:")]
|
||||
// nint GetIndex (ItemIdentifierType itemIdentifier);
|
||||
[Export ("indexOfSectionIdentifier:")]
|
||||
nint GetIndex (SectionIdentifierType sectionIdentifier);
|
||||
|
||||
// [Export ("indexOfSectionIdentifier:")]
|
||||
// nint GetIndex (SectionIdentifierType sectionIdentifier);
|
||||
[Export ("appendItemsWithIdentifiers:")]
|
||||
void AppendItems (ItemIdentifierType [] identifiers);
|
||||
|
||||
// [Export ("appendItemsWithIdentifiers:")]
|
||||
// void AppendItems (ItemIdentifierType [] identifiers);
|
||||
[Export ("appendItemsWithIdentifiers:intoSectionWithIdentifier:")]
|
||||
void AppendItems (ItemIdentifierType [] identifiers, SectionIdentifierType sectionIdentifier);
|
||||
|
||||
// [Export ("appendItemsWithIdentifiers:intoSectionWithIdentifier:")]
|
||||
// void AppendItems (ItemIdentifierType [] identifiers, SectionIdentifierType sectionIdentifier);
|
||||
[Export ("insertItemsWithIdentifiers:beforeItemWithIdentifier:")]
|
||||
void InsertItemsBefore (ItemIdentifierType [] identifiers, ItemIdentifierType itemIdentifier);
|
||||
|
||||
// [Export ("insertItemsWithIdentifiers:beforeItemWithIdentifier:")]
|
||||
// void InsertItemsBefore (ItemIdentifierType [] identifiers, ItemIdentifierType itemIdentifier);
|
||||
[Export ("insertItemsWithIdentifiers:afterItemWithIdentifier:")]
|
||||
void InsertItemsAfter (ItemIdentifierType [] identifiers, ItemIdentifierType itemIdentifier);
|
||||
|
||||
// [Export ("insertItemsWithIdentifiers:afterItemWithIdentifier:")]
|
||||
// void InsertItemsAfter (ItemIdentifierType [] identifiers, ItemIdentifierType itemIdentifier);
|
||||
[Export ("deleteItemsWithIdentifiers:")]
|
||||
void DeleteItems (ItemIdentifierType [] identifiers);
|
||||
|
||||
// [Export ("deleteItemsWithIdentifiers:")]
|
||||
// void DeleteItems (ItemIdentifierType [] identifiers);
|
||||
[Export ("deleteAllItems")]
|
||||
void DeleteAllItems ();
|
||||
|
||||
// [Export ("deleteAllItems")]
|
||||
// void DeleteAllItems ();
|
||||
[Export ("moveItemWithIdentifier:beforeItemWithIdentifier:")]
|
||||
void MoveItemBefore (ItemIdentifierType fromIdentifier, ItemIdentifierType toIdentifier);
|
||||
|
||||
// [Export ("moveItemWithIdentifier:beforeItemWithIdentifier:")]
|
||||
// void MoveItemBefore (ItemIdentifierType fromIdentifier, ItemIdentifierType toIdentifier);
|
||||
[Export ("moveItemWithIdentifier:afterItemWithIdentifier:")]
|
||||
void MoveItemAfter (ItemIdentifierType fromIdentifier, ItemIdentifierType toIdentifier);
|
||||
|
||||
// [Export ("moveItemWithIdentifier:afterItemWithIdentifier:")]
|
||||
// void MoveItemAfter (ItemIdentifierType fromIdentifier, ItemIdentifierType toIdentifier);
|
||||
[Export ("reloadItemsWithIdentifiers:")]
|
||||
void ReloadItems (ItemIdentifierType [] identifiers);
|
||||
|
||||
// [Export ("reloadItemsWithIdentifiers:")]
|
||||
// void ReloadItems (ItemIdentifierType [] identifiers);
|
||||
[Export ("appendSectionsWithIdentifiers:")]
|
||||
void AppendSections (SectionIdentifierType [] sectionIdentifiers);
|
||||
|
||||
// [Export ("appendSectionsWithIdentifiers:")]
|
||||
// void AppendSections (SectionIdentifierType [] sectionIdentifiers);
|
||||
[Export ("insertSectionsWithIdentifiers:beforeSectionWithIdentifier:")]
|
||||
void InsertSectionsBefore (SectionIdentifierType [] sectionIdentifiers, SectionIdentifierType toSectionIdentifier);
|
||||
|
||||
// [Export ("insertSectionsWithIdentifiers:beforeSectionWithIdentifier:")]
|
||||
// void InsertSectionsBefore (SectionIdentifierType [] sectionIdentifiers, SectionIdentifierType toSectionIdentifier);
|
||||
[Export ("insertSectionsWithIdentifiers:afterSectionWithIdentifier:")]
|
||||
void InsertSectionsAfter (SectionIdentifierType [] sectionIdentifiers, SectionIdentifierType toSectionIdentifier);
|
||||
|
||||
// [Export ("insertSectionsWithIdentifiers:afterSectionWithIdentifier:")]
|
||||
// void InsertSectionsAfter (SectionIdentifierType [] sectionIdentifiers, SectionIdentifierType toSectionIdentifier);
|
||||
[Export ("deleteSectionsWithIdentifiers:")]
|
||||
void DeleteSections (SectionIdentifierType [] sectionIdentifiers);
|
||||
|
||||
// [Export ("deleteSectionsWithIdentifiers:")]
|
||||
// void DeleteSections (SectionIdentifierType [] sectionIdentifiers);
|
||||
[Export ("moveSectionWithIdentifier:beforeSectionWithIdentifier:")]
|
||||
void MoveSectionBefore (SectionIdentifierType fromSectionIdentifier, SectionIdentifierType toSectionIdentifier);
|
||||
|
||||
// [Export ("moveSectionWithIdentifier:beforeSectionWithIdentifier:")]
|
||||
// void MoveSectionBefore (SectionIdentifierType fromSectionIdentifier, SectionIdentifierType toSectionIdentifier);
|
||||
[Export ("moveSectionWithIdentifier:afterSectionWithIdentifier:")]
|
||||
void MoveSectionAfter (SectionIdentifierType fromSectionIdentifier, SectionIdentifierType toSectionIdentifier);
|
||||
|
||||
// [Export ("moveSectionWithIdentifier:afterSectionWithIdentifier:")]
|
||||
// void MoveSectionAfter (SectionIdentifierType fromSectionIdentifier, SectionIdentifierType toSectionIdentifier);
|
||||
[Export ("reloadSectionsWithIdentifiers:")]
|
||||
void ReloadSections (SectionIdentifierType [] sectionIdentifiers);
|
||||
}
|
||||
|
||||
// [Export ("reloadSectionsWithIdentifiers:")]
|
||||
// void ReloadSections (SectionIdentifierType [] sectionIdentifiers);
|
||||
// }
|
||||
[NoWatch, TV (13,0), iOS (13,0)]
|
||||
delegate UICollectionViewCell UICollectionViewDiffableDataSourceCellProvider (UICollectionView collectionView, NSIndexPath indexPath, NSObject obj);
|
||||
|
||||
// [NoWatch, TV (13,0), iOS (13,0)]
|
||||
// delegate UICollectionViewCell UICollectionViewDiffableDataSourceCellProvider (UICollectionView collectionView, NSIndexPath indexPath, NSObject obj);
|
||||
[NoWatch, TV (13,0), iOS (13,0)]
|
||||
delegate UICollectionReusableView UICollectionViewDiffableDataSourceSupplementaryViewProvider (UICollectionView collectionView, string str, NSIndexPath indexPath);
|
||||
|
||||
// [NoWatch, TV (13,0), iOS (13,0)]
|
||||
// delegate UICollectionReusableView UICollectionViewDiffableDataSourceSupplementaryViewProvider (UICollectionView collectionView, string str, NSIndexPath indexPath);
|
||||
[NoWatch, TV (13,0), iOS (13,0)]
|
||||
[BaseType (typeof (NSObject))]
|
||||
[DisableDefaultCtor]
|
||||
interface UICollectionViewDiffableDataSource<SectionIdentifierType, ItemIdentifierType> : UICollectionViewDataSource
|
||||
where SectionIdentifierType : NSObject
|
||||
where ItemIdentifierType : NSObject {
|
||||
|
||||
// [NoWatch, TV (13,0), iOS (13,0)]
|
||||
// [BaseType (typeof (NSObject))]
|
||||
// [DisableDefaultCtor]
|
||||
// interface UICollectionViewDiffableDataSource<SectionIdentifierType, ItemIdentifierType> : UICollectionViewDataSource
|
||||
// where SectionIdentifierType : NSObject
|
||||
// where ItemIdentifierType : NSObject {
|
||||
[Export ("initWithCollectionView:cellProvider:")]
|
||||
IntPtr Constructor (UICollectionView collectionView, UICollectionViewDiffableDataSourceCellProvider cellProvider);
|
||||
|
||||
// [Export ("initWithCollectionView:cellProvider:")]
|
||||
// IntPtr Constructor (UICollectionView collectionView, UICollectionViewDiffableDataSourceCellProvider cellProvider);
|
||||
[NullAllowed, Export ("supplementaryViewProvider", ArgumentSemantic.Copy)]
|
||||
UICollectionViewDiffableDataSourceSupplementaryViewProvider SupplementaryViewProvider { get; set; }
|
||||
|
||||
// [NullAllowed, Export ("supplementaryViewProvider", ArgumentSemantic.Copy)]
|
||||
// UICollectionViewDiffableDataSourceSupplementaryViewProvider SupplementaryViewProvider { get; set; }
|
||||
[Export ("snapshot")]
|
||||
NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> Snapshot { get; }
|
||||
|
||||
// [Export ("snapshot")]
|
||||
// NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> Snapshot { get; }
|
||||
[Export ("applySnapshot:animatingDifferences:")]
|
||||
void ApplySnapshot (NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> snapshot, bool animatingDifferences);
|
||||
|
||||
// [Export ("applySnapshot:animatingDifferences:")]
|
||||
// void ApplySnapshot (NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> snapshot, bool animatingDifferences);
|
||||
[Async]
|
||||
[Export ("applySnapshot:animatingDifferences:completion:")]
|
||||
void ApplySnapshot (NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> snapshot, bool animatingDifferences, [NullAllowed] Action completion);
|
||||
|
||||
// [Async]
|
||||
// [Export ("applySnapshot:animatingDifferences:completion:")]
|
||||
// void ApplySnapshot (NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> snapshot, bool animatingDifferences, [NullAllowed] Action completion);
|
||||
[Export ("itemIdentifierForIndexPath:")]
|
||||
[return: NullAllowed]
|
||||
ItemIdentifierType GetItemIdentifier (NSIndexPath indexPath);
|
||||
|
||||
// [Export ("itemIdentifierForIndexPath:")]
|
||||
// [return: NullAllowed]
|
||||
// ItemIdentifierType GetItemIdentifier (NSIndexPath indexPath);
|
||||
[Export ("indexPathForItemIdentifier:")]
|
||||
[return: NullAllowed]
|
||||
NSIndexPath GetIndexPath (ItemIdentifierType identifier);
|
||||
}
|
||||
|
||||
// [Export ("indexPathForItemIdentifier:")]
|
||||
// [return: NullAllowed]
|
||||
// NSIndexPath GetIndexPath (ItemIdentifierType identifier);
|
||||
// }
|
||||
[NoWatch, TV (13,0), iOS (13,0)]
|
||||
delegate UITableViewCell UITableViewDiffableDataSourceCellProvider (UITableView tableView, NSIndexPath indexPath, NSObject obj);
|
||||
|
||||
// [NoWatch, TV (13,0), iOS (13,0)]
|
||||
// delegate UITableViewCell UITableViewDiffableDataSourceCellProvider (UITableView tableView, NSIndexPath indexPath, NSObject obj);
|
||||
[NoWatch, TV (13,0), iOS (13,0)]
|
||||
[BaseType (typeof (NSObject))]
|
||||
[DisableDefaultCtor]
|
||||
interface UITableViewDiffableDataSource<SectionIdentifierType,ItemIdentifierType> : UITableViewDataSource
|
||||
where SectionIdentifierType : NSObject
|
||||
where ItemIdentifierType : NSObject {
|
||||
|
||||
// [NoWatch, TV (13,0), iOS (13,0)]
|
||||
// [BaseType (typeof (NSObject))]
|
||||
// [DisableDefaultCtor]
|
||||
// interface UITableViewDiffableDataSource<SectionIdentifierType,ItemIdentifierType> : UITableViewDataSource
|
||||
// where SectionIdentifierType : NSObject
|
||||
// where ItemIdentifierType : NSObject {
|
||||
[Export ("initWithTableView:cellProvider:")]
|
||||
IntPtr Constructor (UITableView tableView, UITableViewDiffableDataSourceCellProvider cellProvider);
|
||||
|
||||
// [Export ("initWithTableView:cellProvider:")]
|
||||
// IntPtr Constructor (UITableView tableView, UITableViewDiffableDataSourceCellProvider cellProvider);
|
||||
[Export ("snapshot")]
|
||||
NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> Snapshot { get; }
|
||||
|
||||
// [Export ("snapshot")]
|
||||
// NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> Snapshot { get; }
|
||||
[Export ("applySnapshot:animatingDifferences:")]
|
||||
void ApplySnapshot (NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> snapshot, bool animatingDifferences);
|
||||
|
||||
// [Export ("applySnapshot:animatingDifferences:")]
|
||||
// void ApplySnapshot (NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> snapshot, bool animatingDifferences);
|
||||
[Async]
|
||||
[Export ("applySnapshot:animatingDifferences:completion:")]
|
||||
void ApplySnapshot (NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> snapshot, bool animatingDifferences, [NullAllowed] Action completion);
|
||||
|
||||
// [Async]
|
||||
// [Export ("applySnapshot:animatingDifferences:completion:")]
|
||||
// void ApplySnapshot (NSDiffableDataSourceSnapshot<SectionIdentifierType, ItemIdentifierType> snapshot, bool animatingDifferences, [NullAllowed] Action completion);
|
||||
[Export ("itemIdentifierForIndexPath:")]
|
||||
[return: NullAllowed]
|
||||
ItemIdentifierType GetItemIdentifier (NSIndexPath indexPath);
|
||||
|
||||
// [Export ("itemIdentifierForIndexPath:")]
|
||||
// [return: NullAllowed]
|
||||
// ItemIdentifierType GetItemIdentifier (NSIndexPath indexPath);
|
||||
[Export ("indexPathForItemIdentifier:")]
|
||||
[return: NullAllowed]
|
||||
NSIndexPath GetIndexPath (ItemIdentifierType identifier);
|
||||
|
||||
// [Export ("indexPathForItemIdentifier:")]
|
||||
// [return: NullAllowed]
|
||||
// NSIndexPath GetIndexPath (ItemIdentifierType identifier);
|
||||
|
||||
// [Export ("defaultRowAnimation", ArgumentSemantic.Assign)]
|
||||
// UITableViewRowAnimation DefaultRowAnimation { get; set; }
|
||||
// }
|
||||
[Export ("defaultRowAnimation", ArgumentSemantic.Assign)]
|
||||
UITableViewRowAnimation DefaultRowAnimation { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,52 @@
|
|||
//
|
||||
// Unit tests for NSDiffableDataSourceSnapshot
|
||||
//
|
||||
// Authors:
|
||||
// Alex Soto <alexsoto@microsoft.com>
|
||||
//
|
||||
//
|
||||
// Copyright 2019 Microsoft Corporation.
|
||||
//
|
||||
|
||||
#if !__WATCHOS__ && !MONOMAC
|
||||
using System;
|
||||
using NUnit.Framework;
|
||||
using Foundation;
|
||||
using UIKit;
|
||||
using ObjCRuntime;
|
||||
|
||||
namespace MonoTouchFixtures.UIKit {
|
||||
[TestFixture]
|
||||
[Preserve (AllMembers = true)]
|
||||
public class NSDiffableDataSourceSnapshotTest {
|
||||
|
||||
[SetUp]
|
||||
public void Setup ()
|
||||
{
|
||||
TestRuntime.AssertXcodeVersion (11, 0);
|
||||
}
|
||||
|
||||
// https://github.com/xamarin/xamarin-macios/issues/6567
|
||||
[Test]
|
||||
public void GHIssue6567Test ()
|
||||
{
|
||||
var type = typeof (UICollectionViewDiffableDataSource<,>);
|
||||
Assert.NotNull (type, $"{nameof (type)} was null;");
|
||||
|
||||
Class cls = null;
|
||||
Assert.DoesNotThrow (() => cls = new Class (type), "Should not throw");
|
||||
Assert.NotNull (cls, $"{nameof (cls)} was null");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void ObjectUsageTest ()
|
||||
{
|
||||
var diff = new NSDiffableDataSourceSnapshot<NSNumber, NSUuid> ();
|
||||
diff.AppendSections (new NSNumber [] { NSNumber.FromNInt (1) });
|
||||
diff.AppendItems (new NSUuid [] { new NSUuid () }, NSNumber.FromNInt (1));
|
||||
Assert.That (diff.NumberOfSections, Is.GreaterThan (0), "Sections");
|
||||
Assert.That (diff.GetNumberOfItems (NSNumber.FromNInt (1)), Is.GreaterThan (0), "Items");
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif // !__WATCHOS__ && !MONOMAC
|
|
@ -1,44 +0,0 @@
|
|||
!missing-selector! NSDiffableDataSourceSnapshot::appendItemsWithIdentifiers: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::appendItemsWithIdentifiers:intoSectionWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::appendSectionsWithIdentifiers: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::deleteAllItems not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::deleteItemsWithIdentifiers: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::deleteSectionsWithIdentifiers: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::indexOfItemIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::indexOfSectionIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::insertItemsWithIdentifiers:afterItemWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::insertItemsWithIdentifiers:beforeItemWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::insertSectionsWithIdentifiers:afterSectionWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::insertSectionsWithIdentifiers:beforeSectionWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::itemIdentifiers not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::itemIdentifiersInSectionWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::moveItemWithIdentifier:afterItemWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::moveItemWithIdentifier:beforeItemWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::moveSectionWithIdentifier:afterSectionWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::moveSectionWithIdentifier:beforeSectionWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::numberOfItems not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::numberOfItemsInSection: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::numberOfSections not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::reloadItemsWithIdentifiers: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::reloadSectionsWithIdentifiers: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::sectionIdentifierForSectionContainingItemIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::sectionIdentifiers not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::applySnapshot:animatingDifferences: not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::applySnapshot:animatingDifferences:completion: not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::indexPathForItemIdentifier: not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::initWithCollectionView:cellProvider: not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::itemIdentifierForIndexPath: not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::setSupplementaryViewProvider: not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::snapshot not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::supplementaryViewProvider not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::applySnapshot:animatingDifferences: not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::applySnapshot:animatingDifferences:completion: not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::defaultRowAnimation not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::indexPathForItemIdentifier: not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::initWithTableView:cellProvider: not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::itemIdentifierForIndexPath: not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::setDefaultRowAnimation: not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::snapshot not bound
|
||||
!missing-type! NSDiffableDataSourceSnapshot not bound
|
||||
!missing-type! UICollectionViewDiffableDataSource not bound
|
||||
!missing-type! UITableViewDiffableDataSource not bound
|
|
@ -1,44 +0,0 @@
|
|||
!missing-selector! NSDiffableDataSourceSnapshot::appendItemsWithIdentifiers: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::appendItemsWithIdentifiers:intoSectionWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::appendSectionsWithIdentifiers: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::deleteAllItems not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::deleteItemsWithIdentifiers: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::deleteSectionsWithIdentifiers: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::indexOfItemIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::indexOfSectionIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::insertItemsWithIdentifiers:afterItemWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::insertItemsWithIdentifiers:beforeItemWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::insertSectionsWithIdentifiers:afterSectionWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::insertSectionsWithIdentifiers:beforeSectionWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::itemIdentifiers not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::itemIdentifiersInSectionWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::moveItemWithIdentifier:afterItemWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::moveItemWithIdentifier:beforeItemWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::moveSectionWithIdentifier:afterSectionWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::moveSectionWithIdentifier:beforeSectionWithIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::numberOfItems not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::numberOfItemsInSection: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::numberOfSections not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::reloadItemsWithIdentifiers: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::reloadSectionsWithIdentifiers: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::sectionIdentifierForSectionContainingItemIdentifier: not bound
|
||||
!missing-selector! NSDiffableDataSourceSnapshot::sectionIdentifiers not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::applySnapshot:animatingDifferences: not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::applySnapshot:animatingDifferences:completion: not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::indexPathForItemIdentifier: not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::initWithCollectionView:cellProvider: not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::itemIdentifierForIndexPath: not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::setSupplementaryViewProvider: not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::snapshot not bound
|
||||
!missing-selector! UICollectionViewDiffableDataSource::supplementaryViewProvider not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::applySnapshot:animatingDifferences: not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::applySnapshot:animatingDifferences:completion: not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::defaultRowAnimation not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::indexPathForItemIdentifier: not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::initWithTableView:cellProvider: not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::itemIdentifierForIndexPath: not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::setDefaultRowAnimation: not bound
|
||||
!missing-selector! UITableViewDiffableDataSource::snapshot not bound
|
||||
!missing-type! NSDiffableDataSourceSnapshot not bound
|
||||
!missing-type! UICollectionViewDiffableDataSource not bound
|
||||
!missing-type! UITableViewDiffableDataSource not bound
|
Загрузка…
Ссылка в новой задаче