浏览 SDKs · iOS
平台
SDKsiOS

更新当前用户资料

使用 iOS SDK 更新当前登录用户资料。

复制

建议先通过获取当前用户资料获取当前 OIMUserInfo,再仅修改昵称、头像或 ex 等目标字段;不要直接使用未初始化的空对象,以免意外覆盖其他属性。

参数说明

参数类型说明
userInfoOIMUserInfo *包含待更新字段的用户信息对象。
current.nickname = nickname;
current.faceURL = avatarURL;
[[OIMManager manager] setSelfInfo:current
                        onSuccess:^(NSString *data) {
    [profileStore refreshCurrentUserInfo:current];
}
                        onFailure:^(NSInteger code, NSString *message) {
    NSLog(@"setSelfInfo failed: %ld %@", (long)code, message);
}];

ex 属于完整的扩展字符串,需要按业务 JSON 结构合并后再提交。状态变更以当前用户 userID 为合并标识。

返回结果

成功回调 onSuccess 表示服务端已接受资料修改请求。当前端通常可立即更新界面展示,其他端或多端同步则通过用户监听回调处理。

监听资料更新

实现 OIMUserListener 协议的 onSelfInfoUpdated: 方法监听当前登录用户资料的变更事件:

@interface ProfileStore () <OIMUserListener>
@end

@implementation ProfileStore

- (void)startListening {
    [[OIMManager callbacker] addUserListener:self];
}

- (void)stopListening {
    [[OIMManager callbacker] removeUserListener:self];
}

- (void)onSelfInfoUpdated:(OIMUserInfo *)info {
    [self updateLocalCurrentUser:info];
}

@end

在退出登录或切换账号时,使用注册时的同一个 listener 实例调用移除监听方法。