63 lines
2.0 KiB
C
63 lines
2.0 KiB
C
|
|
//
|
|||
|
|
// KBBizCode.h
|
|||
|
|
// 服务端业务状态码与通用解析工具
|
|||
|
|
//
|
|||
|
|
// 说明:
|
|||
|
|
// - 将所有常用的业务 code 集中到这里,避免在项目里到处写裸数字;
|
|||
|
|
// - 实际数值请按照你们后端的约定修改;
|
|||
|
|
// - 若后端新增/调整 code,只需要维护这一处即可。
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
#ifndef KBBizCode_h
|
|||
|
|
#define KBBizCode_h
|
|||
|
|
|
|||
|
|
#import <Foundation/Foundation.h>
|
|||
|
|
#import "KBAPI.h" // 引入 SUCCESS_CODE/ERROR_CODE 等基础定义
|
|||
|
|
|
|||
|
|
/// 服务端业务状态码(按项目实际调整)
|
|||
|
|
typedef NS_ENUM(NSInteger, KBBizCode) {
|
|||
|
|
/// 通用成功(通常为 200,对应 SUCCESS_CODE)
|
|||
|
|
KBBizCodeSuccess = SUCCESS_CODE,
|
|||
|
|
|
|||
|
|
/// token 失效/未登录(示例值;请按后端实际 code 修改)
|
|||
|
|
KBBizCodeTokenInvalid = 40101,
|
|||
|
|
|
|||
|
|
/// token 过期(可选;如无区分可与 KBBizCodeTokenInvalid 复用)
|
|||
|
|
KBBizCodeTokenExpired = 40102,
|
|||
|
|
|
|||
|
|
/// 账号在其他设备登录,被服务端强制下线
|
|||
|
|
KBBizCodeAccountKicked = 40103,
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
NS_ASSUME_NONNULL_BEGIN
|
|||
|
|
|
|||
|
|
/// 从 JSON 响应中提取业务 code。
|
|||
|
|
/// 支持常见字段:code / status / retcode(数字或字符串)。
|
|||
|
|
/// 若未找到返回 NSNotFound。
|
|||
|
|
static inline NSInteger KBBizCodeFromJSONObject(id obj) {
|
|||
|
|
if (![obj isKindOfClass:NSDictionary.class]) return NSNotFound;
|
|||
|
|
NSDictionary *d = (NSDictionary *)obj;
|
|||
|
|
id code = d[@"code"] ?: d[@"status"] ?: d[@"retcode"];
|
|||
|
|
if ([code isKindOfClass:NSNumber.class]) {
|
|||
|
|
return ((NSNumber *)code).integerValue;
|
|||
|
|
}
|
|||
|
|
if ([code isKindOfClass:NSString.class]) {
|
|||
|
|
return ((NSString *)code).integerValue;
|
|||
|
|
}
|
|||
|
|
return NSNotFound;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// 从 JSON 响应中提取错误文案,支持 message/msg/error。
|
|||
|
|
static inline NSString *KBBizMessageFromJSONObject(id obj) {
|
|||
|
|
if (![obj isKindOfClass:NSDictionary.class]) return nil;
|
|||
|
|
NSDictionary *d = (NSDictionary *)obj;
|
|||
|
|
NSString *msg = d[@"message"] ?: d[@"msg"] ?: d[@"error"];
|
|||
|
|
if (![msg isKindOfClass:NSString.class]) return nil;
|
|||
|
|
return msg;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
NS_ASSUME_NONNULL_END
|
|||
|
|
|
|||
|
|
#endif /* KBBizCode_h */
|
|||
|
|
|