IMAUser.m 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. //
  2. // IMAUser.m
  3. // TIMAdapter
  4. //
  5. // Created by AlexiChen on 16/1/29.
  6. // Copyright © 2016年 AlexiChen. All rights reserved.
  7. //
  8. #import "IMAUser.h"
  9. @implementation IMAUser
  10. - (instancetype)initWith:(NSString *)userid
  11. {
  12. if (self = [super init])
  13. {
  14. self.userId = userid;
  15. }
  16. return self;
  17. }
  18. - (instancetype)initWithUserInfo:(TIMUserProfile *)userprofile
  19. {
  20. if (self = [super init])
  21. {
  22. self.userId = userprofile.identifier;
  23. self.nickName = userprofile.nickname;
  24. self.remark = userprofile.remark;
  25. self.icon = userprofile.faceURL;
  26. }
  27. return self;
  28. }
  29. #pragma IMAUserShowAble method
  30. - (NSURL *)showIconUrl
  31. {
  32. NSString *icon = [self icon];
  33. if ([NSString isEmpty:icon])
  34. {
  35. return nil;
  36. }
  37. return [NSURL URLWithString:icon];
  38. }
  39. - (NSString *)showTitle
  40. {
  41. return ![NSString isEmpty:self.remark] ? self.remark : ![NSString isEmpty:self.nickName] ? self.nickName : self.userId;
  42. }
  43. #pragma - mark IMAConversationAble
  44. - (BOOL)isC2CType
  45. {
  46. return YES;
  47. }
  48. - (BOOL)isGroupType
  49. {
  50. return NO;
  51. }
  52. - (BOOL)isSystemType
  53. {
  54. return NO;
  55. }
  56. // 重写此方法,主要用于列表中的去重以及查找操作
  57. - (BOOL)isEqual:(id)object
  58. {
  59. BOOL equal = [super isEqual:object];
  60. if (!equal)
  61. {
  62. if ([object isKindOfClass:[IMAUser class]])
  63. {
  64. IMAUser *u = (IMAUser *)object;
  65. if ((u.isC2CType && self.isC2CType)||(u.isGroupType && self.isGroupType))
  66. {
  67. equal = [self.userId isEqualToString:u.userId];
  68. }
  69. }
  70. }
  71. return equal;
  72. }
  73. @end