Group member queries overview
Retrieve iOS group members and process member delegates.
The group member module maintains user associations within a group, including member roles (owner, administrator, regular member), group-specific nicknames, and individual muting configurations. In client state management, the composite identifier groupID:userID serves as the primary key for member deduplication and cache updates.
Member query operations
The iOS SDK provides several query interfaces across different dimensions:
- Retrieve group members by page: Filter members by role and load the roster with pagination.
- Retrieve the group owner and administrators: Rapidly fetch group management accounts without traversing the entire member roster.
- Retrieve specified group-member profiles: Query member cards and profile snapshots for known user IDs in a batch.
- Search group members: Search group members by user ID or group nickname keywords.
- Check users’ group membership: Verify whether candidate users belong to the group without fetching complete profiles.
Member event listeners
When members join, leave, are removed, or change their profiles, the SDK dispatches delegate callbacks defined in OIMGroupListener:
- (void)startMemberEvents {
[[OIMManager callbacker] addGroupListener:self];
}
- (void)stopMemberEvents {
[[OIMManager callbacker] removeGroupListener:self];
}
- (void)onGroupMemberAdded:(OIMGroupMemberInfo *)item {
// New member joined; merge into the local list keyed by groupID:userID
[self upsertMember:item];
}
- (void)onGroupMemberDeleted:(OIMGroupMemberInfo *)item {
// Member left or was removed; delete from local cache keyed by groupID:userID
[self removeMember:item];
}
- (void)onGroupMemberInfoChanged:(OIMGroupMemberInfo *)item {
// Member role, group nickname, or mute status changed; update locally
[self upsertMember:item];
}Retain a stable listener object reference and pass the same instance when registering or removing listeners. If member change events arrive during paginated loading, reset offset to 0 and re-query the list to prevent index drift and display inconsistencies.
Was this page helpful?