diff --git a/CLTokenInputView/CLTokenInputView/CLBackspaceDetectingTextField.m b/CLTokenInputView/CLTokenInputView/CLBackspaceDetectingTextField.m index 9bfcb93..1709127 100644 --- a/CLTokenInputView/CLTokenInputView/CLBackspaceDetectingTextField.m +++ b/CLTokenInputView/CLTokenInputView/CLBackspaceDetectingTextField.m @@ -24,8 +24,9 @@ - (id)initWithFrame:(CGRect)frame // Listen for the deleteBackward method from UIKeyInput protocol - (void)deleteBackward { - if ([self.delegate respondsToSelector:@selector(textFieldDidDeleteBackwards:)]) { - [self.delegate textFieldDidDeleteBackwards:self]; + NSObject *delegate = self.delegate; + if ([delegate respondsToSelector:@selector(textFieldDidDeleteBackwards:)]) { + [delegate textFieldDidDeleteBackwards:self]; } // Call super afterwards, so the -text property will return text // prior to the delete diff --git a/CLTokenInputView/CLTokenInputView/CLToken.m b/CLTokenInputView/CLTokenInputView/CLToken.m index aee550c..2cc2f1c 100644 --- a/CLTokenInputView/CLTokenInputView/CLToken.m +++ b/CLTokenInputView/CLTokenInputView/CLToken.m @@ -14,7 +14,7 @@ - (id)initWithDisplayText:(NSString *)displayText context:(NSObject *)context { self = [super init]; if (self) { - self.displayText = displayText; + self.displayText = [displayText copy]; self.context = context; } return self; @@ -39,7 +39,7 @@ - (BOOL)isEqual:(id)object - (NSUInteger)hash { - return self.displayText.hash + self.context.hash; + return self.displayText.hash ^ self.context.hash; } @end diff --git a/CLTokenInputView/CLTokenInputView/CLTokenInputView.m b/CLTokenInputView/CLTokenInputView/CLTokenInputView.m index d6c3ff7..cd494ff 100644 --- a/CLTokenInputView/CLTokenInputView/CLTokenInputView.m +++ b/CLTokenInputView/CLTokenInputView/CLTokenInputView.m @@ -38,7 +38,7 @@ @interface CLTokenInputView ()