Migration

This guide provides details for how to migration between major versions of IGListKit.

From 1.x to 2.x

For details on all changes in IGListKit 2.0.0, please see the release notes.

IGListDiffable Conformance

If you relied on the default NSObject<IGListDiffable> category, you will need to add IGListDiffable conformance to each of your models. To get things working as they did in 1.0, simply add the following to each of your models:

Objective-C

#import <IGListKit/IGListDiffable.h>

// Header
@interface MyModel <IGListDiffable>

// Implementation
- (id<NSObject>)diffIdentifier {
  return self;
}

- (BOOL)isEqualToDiffableObject:(id<IGListDiffable>)object {
  return [self isEqual:object];
}

Swift

import IGListKit

extension MyModel: IGListDiffable {
  func diffIdentifier() -> NSObjectProtocol {
    return self
  }

  func isEqual(toDiffableObject object: IGListDiffable?) -> Bool {
    return isEqual(object)
  }
}

However we recommend writing more thorough identity and equality checks. Check out our guide to IGListDiffable and Equality for more info.