name initial icon content capable apple app iphone objective-c out-parameters

iphone - initial - pasando el parámetro



viewport iphone (2)

Crea el método para aceptar un puntero al objeto.

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

Pase en la referencia al objeto local.

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

Escribí un método con un parámetro de salida:

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

Entonces pasé el param de esta manera:

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

Sin embargo, hay un problema. El valor del parámetro de salida no se está configurando correctamente. ¿Puede alguien ayudarme a hacer esto correctamente?


Un "parámetro de salida" es, por definición, un puntero a un puntero.

Tu método debería verse así:

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

Esto elimina la referencia al puntero pasado para obtener la referencia del objeto real y luego lo asigna a lo que devuelva [receivedMessage substringFromIndex:2] .

Invocar este método es bastante simple:

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