Mac/Whiteboard/Whiteboard/UserInfo.m [18:64]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    return self;
}

@end


@interface UserManager ()

@property (strong, nonatomic) NSMutableArray<UserInfo *> * userInfos;

@end

@implementation UserManager

- (instancetype)init {
    self = [super init];
    if (nil != self) {
        self.userInfos = [NSMutableArray arrayWithCapacity:10];
    }
    return self;
}

- (UserInfo *)addUser:(NSString *)userId withName:(NSString *)userName {
    UserInfo * userInfo = [[UserInfo alloc] initWithId:userId name:userName];
    [self.userInfos addObject:userInfo];
    return userInfo;
}

- (UserInfo *)removeUser:(NSString *)userId {
    UserInfo * userInfo = nil;
    for (userInfo in self.userInfos) {
        if ([userInfo.userId isEqualToString:userId]) {
            [self.userInfos removeObject:userInfo];
            break;
        }
    }
    return userInfo;
}

- (UserInfo *)findUser:(NSString *)userId {
    UserInfo * userInfo = nil;
    for (userInfo in self.userInfos) {
        if ([userInfo.userId isEqualToString:userId]) {
            break;
        }
    }
    return userInfo;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



iOS/ScreenSharing/ScreenSharing/UserInfo.m [21:67]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    return self;
}

@end


@interface UserManager ()

@property (strong, nonatomic) NSMutableArray<UserInfo *> * userInfos;

@end

@implementation UserManager

- (instancetype)init {
    self = [super init];
    if (nil != self) {
        self.userInfos = [NSMutableArray arrayWithCapacity:10];
    }
    return self;
}

- (UserInfo *)addUser:(NSString *)userId withName:(NSString *)userName {
    UserInfo * userInfo = [[UserInfo alloc] initWithId:userId name:userName];
    [self.userInfos addObject:userInfo];
    return userInfo;
}

- (UserInfo *)removeUser:(NSString *)userId {
    UserInfo * userInfo = nil;
    for (userInfo in self.userInfos) {
        if ([userInfo.userId isEqualToString:userId]) {
            [self.userInfos removeObject:userInfo];
            break;
        }
    }
    return userInfo;
}

- (UserInfo *)findUser:(NSString *)userId {
    UserInfo * userInfo = nil;
    for (userInfo in self.userInfos) {
        if ([userInfo.userId isEqualToString:userId]) {
            break;
        }
    }
    return userInfo;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



