【问题标题】:Class method not being called in Obj C在 Obj C 中未调用类方法
【发布时间】:2025-11-23 05:35:01
【问题描述】:

这里是我调用类方法的地方。在 NSURLRequest 完成后进行调用。所有的值都在那里,没有什么是零

[MemberInfo SetMemberInfo:memberId groupId:groupId token:token withContext:_context];

这里是核心数据“MemberInfo+CoreDataProperties.m”生成的类中实现的方法

+ (bool)SetMemberInfo:(NSString *)memberId groupId:(NSString *)groupId token:(NSString *)token withContext:(NSManagedObjectContext *)context
{
    NSManagedObject *memberInfoObject = [NSEntityDescription insertNewObjectForEntityForName:@"MemberInfo" inManagedObjectContext:context];
    [memberInfoObject setValue:memberId forKey:@"memberId"];
    [memberInfoObject setValue:groupId forKey:@"groupId"];
    [memberInfoObject setValue:token forKey:@"token"];

    NSError *error = nil;
    if (![context save:&error])
    {
        return false;
    }

    return true;
}

我的错误为零,日志中没有任何内容可以解释原因。但是这个类方法 'SetMemberInfo' 永远不会被命中。有什么线索吗?

编辑** 我调用方法的完整代码

NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
    if (error == nil)
    {
        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
        if ([httpResponse statusCode] == 200)
        {
            id object = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];

            if ([object isKindOfClass:[NSDictionary class]] && error == nil)
            {
                NSString *groupId = _tfGroupId.text;
                NSString *memberId = _tfMemberId.text;
                NSString *token = [object valueForKey:@"token"];

                [MemberInfo SetMemberInfo:memberId groupId:groupId token:token withContext:_context];
            }
        }
    }

}];

[postDataTask resume];

【问题讨论】:

  • 发布调用 SetMemberInfo 的代码
  • 调用该方法会发生什么?
  • @SandeepBhandari 我添加了更多代码
  • @Rajesh 没有任何反应。我有一个断点,我在其中调用该方法,它确实命中了该行,但随后继续。从不调用方法
  • 可能是上下文问题吗?

标签: ios objective-c class methods


【解决方案1】:

必须与我拥有类方法的类有关。我将它移到另一个类,现在它进行调用。

【讨论】:

    最近更新 更多