Подтвердить что ты не робот

Параметр прохождения

Я написал метод с параметром out:

-(NSString *)messageDecryption:(NSString *)receivedMessage outParam:(out)messageCondent
{   
    messageCondent = [receivedMessage substringFromIndex:2];
    return [receivedMessage substringToIndex:1];
}

Затем я передал param следующим образом:

NSString *messageCondent;
NSString *mode = [myclassobject messageDecryption:message outParam:messageCondent];

Однако есть проблема. Значение параметра out не устанавливается должным образом. Может ли кто-нибудь помочь мне сделать это правильно?

4b9b3361

Ответ 1

Создайте метод для приема указателя на объект.

-(NSString *)messageDecryption:(NSString *)receivedMessage outParam:(NSString**)messageCondent
{   
    *messageCondent = [receivedMessage substringFromIndex:2];
    return [receivedMessage substringToIndex:1];

}

Передайте ссылку на локальный объект.

NSString *messageCondent = nil;
NSString *mode = [myclassobject messageDecryption:message outParam:&messageCondent];

Ответ 2

"Исходный параметр" по определению является указателем на указатель.

Ваш метод должен выглядеть следующим образом:

-(NSString *)messageDecryption:(NSString *)receivedMessage outParam:(NSString **)messageCondent
{   
    *messageCondent = [receivedMessage substringFromIndex:2];
    return [receivedMessage substringToIndex:1];
}

Это разыскивает указатель, который передается в фактическую ссылку на объект, и затем присваивает ему значение [receivedMessage substringFromIndex:2].

Вызов этого метода довольно прост:

NSString *messageCondent = nil;
NSString *mode = [myclassobject messageDecryption:message outParam:&messageCondent];