2011-04-29 6 views
0

분석기를 사용하여 코드의 줄과 연결할 수 없다는 경고가 나타났습니다. 나는 그들을 어떻게 다룰 지 모르겠습니다. 그것들을 클릭하면 편집기에서 올바른 파일로 이동하지만, 분석기 요약 결과는 나에게 많은 것을 말해줍니다. 나는 이들 각각이 무엇을 언급하고 있는지를 알지 못하며, 코드를 한 줄씩 검토하는 것은 생산적이지 않다 (나는 무엇을 찾고 있는지 모른다). 마지막 경고를 들어 세부 정보/줄 번호가없는 XCode 분석기의 경고

Object with +0 retain counts returned to caller where a +1 (owning) retain count is expected 

Incorrect decrement of the reference count of an object that is not owned at this point by the caller 

Object with +0 retain counts returned to caller where a +1 (owning) retain count is expected 

Object sent -autorelease too many times 

, 나는 오토 릴리즈를 제거하고 멀리 갔다,하지만 난 그것을 반환 문에 사용 된 이후, 그것을 해제하는 방법을 모르겠어요.

- (Client*) createNewClient { 
... 
    Client *client = [NSEntityDescription insertNewObjectForEntityForName:@"Client"inManagedObjectContext:dataInterface.managedObjectContext];   
... 
    return client; 
} 

일반적으로 어떻게해야합니까?

+1

어느 Xcode 버전입니까? –

+0

@Bavarious XCode 버전 4 – Jim

답변

0

insertNewObjectForEntityForName:에 의해 반환 된 개체를 소유하고 있지 않으므로이를 해제하지 않아도됩니다. 에서

Apple Memory Management Programming Guide :

당신은 이름이 는 "ALLOC", "새로운", "복사"로 시작하는 방법을 사용하여 만들거나 "mutableCopy" 경우 개체의 소유권을 (예 : alloc, newObject 또는 mutableCopy) 또는 에 보존 메시지를 보내는 경우.

insertNewObjectForEntityForName:에는 'New'가 포함되어 있지만 처음에는 포함되어 있지 않습니다.

0

이것은 명명 규칙에 플래그가 지정되어있을 수 있습니다. 자동 렌더링 된 객체를 반환하려면 다음으로 이름을 변경하십시오.

- (Client *)clientWithCurrentContext 
관련 문제