기기에서 메모리 누출을 찾기 위해 Instruments를 사용했지만 문제를 해결하거나 해결 방법을 찾을 수 없습니다. 그것은 내 첫 번째 애플 리케이션 및 Objective - C에 첫 번째 침략 그래서 나는 아마도 꽤 바보 같은 일을하고 있어요. 누구든지 도와 줄 수 있습니까? NSString 객체 "str"이 출시되지는 않을 것이라고 추측하고 있습니다.하지만 어떻게 해제하고 반환합니까?iPad에서 메모리 누수 문제를 해결할 수 없습니다.
- (NSString *)MakeMsg:(uint8_t)slaveAddr FunctionCode:(uint8_t)functionCode StartReg: (uint16_t)startReg Range:(uint16_t)range {
NSString *str;
uint8_t CRCbyte1;
uint8_t CRCbyte2;
uint8_t buf[MODBUS_MSG_LEN_BYTES+LRC_BYTE+ASCII_WRAPPER];
uint8_t ASCIIbuf[(MODBUS_MSG_LEN_BYTES*2)+LRC_BYTE+ASCII_WRAPPER];
buf[0] = slaveAddr;
buf[1] = functionCode;
buf[2] = (uint8_t)(startReg >> 8);
buf[3] = (uint8_t)(startReg & 0xFF);
buf[4] = (uint8_t)(range >> 8);
buf[5] = (uint8_t)(range & 0xFF);
if (RTUMode==YES){
// calculate the CRC bytes
[self GenerateCRC16:buf CRC1:&CRCbyte1 CRC2:&CRCbyte2];
buf[6] = CRCbyte1;
buf[7] = CRCbyte2;
}
if (ASCIIMode==YES){
// calculate the LRC byte
[self GenerateLRC:buf Length:(uint8_t)MODBUS_MSG_LEN_BYTES ASCIIBuffer:ASCIIbuf];
// convert the buffer to ASCII
[self BufToASCII:buf ASCIIBuffer:ASCIIbuf];
// add the ASCII wrapper ':',buf,'CR','LF'
[self AddASCIIWrapper:buf ASCIIBuffer:ASCIIbuf];
}
str = [NSString stringWithUTF8String:(const char *)ASCIIbuf]; // <-- Memory leak identified as this line right here by Instruments
return str;// Return the string value of our command so we can use it in a comms log display.
가}
이 어떤 도움을 크게 감상 할 수있다 :
다음은 소스 코드입니다! 감사합니다 Matthew
누수가 간단한 경우, 일반적으로 빌드 및 분석은이를 잘 나타냅니다. 발견 된 오류를 수정해야합니다. –