-1
작동하지 않는이 코드를 복구하라는 요청을 받았지만 일반적인 배경 작업입니다.performBlock 내에 할당 된 경우 NSManagedObjectContext가 없음
__weak NSManagedObjectContext *weakCtx=[CDC privateManagedObjectContext]; // convenient class+macro for obtaining a private context queue
__weak id weakSelf = self;
[weakCtx performBlock:^{
__strong id strongSelf = weakSelf;
__strong NSManagedObjectContext *ctx = weakCtx; // <-- nil
// more code following
];
문제는 나중에 ctx
이 아니므로 발생합니다. 그러나 블록 내에 중단 점을 넣으면 weakCtx가 유효하지만 ctx가 nil 값을 얻음으로써 블록이 실패하게됩니다.
반면에 weakSelf가 올바르게 할당되고 나머지 코드가 작동합니다.
무엇이 누락 되었습니까?
같은 downvoter ... 와서, downvote, 그리고 가서 ... – Leonardo