IGListKit/Source/IGListDiffable.h
Jake Lin eca0205c26 Call copy method to avoid a potential issue for an NSString property
Summary:
According to rnystrom 's comment on #125 , we leave only two small changes in this PR.
1. Call copy method to avoid a potential issue for an `NSString` property.
2. fix a typo.

close #125

- [x] All tests pass. Demo project builds and runs.
- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/master/CONTRIBUTING.md)
Closes https://github.com/Instagram/IGListKit/pull/131

Differential Revision: D4095492

Pulled By: rnystrom

fbshipit-source-id: b162842a38850c826685efd0746022daabe9d2b8
2016-10-28 07:59:06 -07:00

47 lines
1.5 KiB
Objective-C

/**
* Copyright (c) 2016-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
#import <Foundation/Foundation.h>
/**
The IGListDiffable protocol provides the base methods needed to compare the identity and equality of two objects using
one of the IGListDiff functions.
*/
@protocol IGListDiffable
/**
Returns a key that uniquely identifies the object.
@return A key that can be used to uniquely identify the object.
@discussion Two objects may share the same identifier, but are not equal. A common pattern is to import IGListCommon.h
and use the NSObject category for automatic conformance. However this means that objects will be identified on their
pointer value so finding updates becomes impossible.
@warning This value should never be mutated.
*/
- (nonnull id<NSObject>)diffIdentifier;
/**
Returns a Boolean value that indicates whether the receiver and a given object are equal.
@param object The object to be compared to the receiver.
@return YES if the receiver and object are equal, otherwise NO.
@warning If you implement a custom isEqual: you must also implement -hash. You can just use the -diffIdentifier value
for your hash function:
- (NSUInteger)hash {
return [[self diffIdentifier] hash];
}
*/
- (BOOL)isEqual:(nullable id<IGListDiffable>)object;
@end