Files
featherVoice/QXLive/Third/MJExtension/NSObject+MJKeyValue.h

195 lines
5.5 KiB
C
Raw Permalink Normal View History

2026-01-27 19:10:51 +08:00
//
// NSObject+MJKeyValue.h
// MJExtension
//
// Created by mj on 13-8-24.
// Copyright (c) 2013年 小码哥. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "MJExtensionConst.h"
#import <CoreData/CoreData.h>
#import "MJProperty.h"
/**
* KeyValue协议
*/
@protocol MJKeyValue <NSObject>
@optional
/**
*
*/
+ (NSArray *)mj_allowedPropertyNames;
/**
*
*/
+ (NSArray *)mj_ignoredPropertyNames;
/**
* key去字典中取值
*
* @return key是属性名value是从字典中取值用的key
*/
+ (NSDictionary *)mj_replacedKeyFromPropertyName;
/**
* key去字典中取值
*
* @return key
*/
+ (id)mj_replacedKeyFromPropertyName121:(NSString *)propertyName;
/**
*
*
* @return key是数组属性名value是数组中存放模型的ClassClass类型或者NSString类型
*/
+ (NSDictionary *)mj_objectClassInArray;
/** 特殊地区在字符串格式化数字时使用 */
+ (NSLocale *)mj_numberLocale;
/**
*
*
* @param oldValue
*
* @return
*/
- (id)mj_newValueFromOldValue:(id)oldValue property:(MJProperty *)property;
/**
*
*/
- (void)mj_keyValuesDidFinishConvertingToObject MJExtensionDeprecated("请使用`mj_didConvertToObjectWithKeyValues:`替代");
- (void)mj_keyValuesDidFinishConvertingToObject:(NSDictionary *)keyValues MJExtensionDeprecated("请使用`mj_didConvertToObjectWithKeyValues:`替代");
- (void)mj_didConvertToObjectWithKeyValues:(NSDictionary *)keyValues;
/**
*
*/
- (void)mj_objectDidFinishConvertingToKeyValues MJExtensionDeprecated("请使用`mj_objectDidConvertToKeyValues:`替代");
- (void)mj_objectDidConvertToKeyValues:(NSMutableDictionary *)keyValues;
@end
@interface NSObject (MJKeyValue) <MJKeyValue>
#pragma mark - 类方法
/**
*
*/
+ (NSError *)mj_error;
/**
* key是否参考replacedKeyFromPropertyName等方法
*/
+ (void)mj_referenceReplacedKeyWhenCreatingKeyValues:(BOOL)reference;
#pragma mark - 对象方法
/**
*
* @param keyValues (NSDictionaryNSDataNSString)
*/
- (instancetype)mj_setKeyValues:(id)keyValues;
/**
*
* @param keyValues (NSDictionaryNSDataNSString)
* @param context CoreData上下文
*/
- (instancetype)mj_setKeyValues:(id)keyValues context:(NSManagedObjectContext *)context;
/**
*
* @return
*/
- (NSMutableDictionary *)mj_keyValues;
- (NSMutableDictionary *)mj_keyValuesWithKeys:(NSArray *)keys;
- (NSMutableDictionary *)mj_keyValuesWithIgnoredKeys:(NSArray *)ignoredKeys;
/**
*
* @param objectArray
* @return
*/
+ (NSMutableArray *)mj_keyValuesArrayWithObjectArray:(NSArray *)objectArray;
+ (NSMutableArray *)mj_keyValuesArrayWithObjectArray:(NSArray *)objectArray keys:(NSArray *)keys;
+ (NSMutableArray *)mj_keyValuesArrayWithObjectArray:(NSArray *)objectArray ignoredKeys:(NSArray *)ignoredKeys;
#pragma mark - 字典转模型
/**
*
* @param keyValues (NSDictionaryNSDataNSString)
* @return
*/
+ (instancetype)mj_objectWithKeyValues:(id)keyValues;
/**
* CoreData模型
* @param keyValues (NSDictionaryNSDataNSString)
* @param context CoreData上下文
* @return
*/
+ (instancetype)mj_objectWithKeyValues:(id)keyValues context:(NSManagedObjectContext *)context;
/**
* plist来创建一个模型
* @param filename (mainBundle中的文件)
* @return
*/
+ (instancetype)mj_objectWithFilename:(NSString *)filename;
/**
* plist来创建一个模型
* @param file
* @return
*/
+ (instancetype)mj_objectWithFile:(NSString *)file;
#pragma mark - 字典数组转模型数组
/**
*
* @param keyValuesArray (NSDictionaryNSDataNSString)
* @return
*/
+ (NSMutableArray *)mj_objectArrayWithKeyValuesArray:(id)keyValuesArray;
/**
*
* @param keyValuesArray (NSDictionaryNSDataNSString)
* @param context CoreData上下文
* @return
*/
+ (NSMutableArray *)mj_objectArrayWithKeyValuesArray:(id)keyValuesArray context:(NSManagedObjectContext *)context;
/**
* plist来创建一个模型数组
* @param filename (mainBundle中的文件)
* @return
*/
+ (NSMutableArray *)mj_objectArrayWithFilename:(NSString *)filename;
/**
* plist来创建一个模型数组
* @param file
* @return
*/
+ (NSMutableArray *)mj_objectArrayWithFile:(NSString *)file;
#pragma mark - 转换为JSON
/**
* JSON Data
*/
- (NSData *)mj_JSONData;
/**
*
*/
- (id)mj_JSONObject;
/**
* JSON
*/
- (NSString *)mj_JSONString;
@end