如何将枚举值附加到对象数组中保存的内存

时间:2019-06-24 17:01:29

标签: objective-c

让我们说我有一个从网络响应中获取的对象的NSArray,该数组的对象包含一个属性,该属性是一个枚举值。在那个枚举中可以有一个或多个具有不同值的对象。我需要知道该枚举的每个值

我有一个全局的enums.h文件,其中包含整个项目的枚举。但是这些枚举是单个的,我的意思是,它们只被分配了一次,所以它们不会被覆盖(例如,在我的情况下,如果其中有两个或多个对象,则该对象的先前枚举值将被新值覆盖。该数组)。提供的代码具有detailType属性,该属性是enums.h值中的枚举



+ (CommentDetails *)detailsFromDto:(commentDetailDTO *)dto
{
    CommentDetails *details = 
    [CommentDetails new];
    details.key = dto.v_key;
    details.value = dto.v_value;
    details.date = dto.v_date;
    CommentDetailType detailType = COMMENT_NONE;

    if (dto.v_type == BROWSER_INFORMATION) {
        detailType = BROWSER_INFORMATION;
    } else if (dto.v_type == MEDIA) {
        detailType = MEDIA;
    } else if (dto.v_type == QUESTIONNAIRE) {
        detailType = QUESTIONNAIRE;
    } else if (dto.v_type == VERIFICATION) {
        detailType = VERIFICATION;
    }
    return details;
}

我希望响应中包含多个枚举值。现在,所有属性都被数组的最后一个对象值覆盖

编辑1:

这就是我如何调用detailsFromDTO方法:

NSMutableArray<CommentDetails *> *details = [NSMutableArray new];
    NSArray<commentDetailDTO *> *v_details = 
    v.v_commentDetails;
    for (commentDetailDTO *v_detail in v_details) {
        [details addObject:[self detailsFromDto:v_detail]];
    }

v.v_commentDetails是响应对象

0 个答案:

没有答案