2012-03-04 13 views
5

Estoy intentando incorporar este bit of code en un nuevo proyecto (iOS 5) ... El problema es que estoy usando ARC y REALMENTE no le gusta el código tal como está escrito.Errores iOS5 ARC: SKPSMTPMessage

He podido resolver la mayoría de los errores, pero tengo 3 errores que parece que no puedo resolver.

Error # 1:

Ivar existente 'delegado' de la propiedad unsafe_unretained 'delegado' debe _unsafe_unretained

.h

@interface SKPSMTPMessage : NSObject { 
    NSOutputStream *outputStream; 
    NSInputStream *inputStream; 

    id <SKPSMTPMessageDelegate> delegate; 
} 

@property(nonatomic, assign) id <SKPSMTPMessageDelegate> delegate; 

.m

@synthesize login, pass, relayHost, relayPorts, subject, fromEmail, toEmail, parts, requiresAuth, inputString, wantsSecure, \ 
delegate, connectTimer, connectTimeout, watchdogTimer, validateSSLChain; 

Errores # 2 # 3: &

dirección Pasando del objeto no local a _autoreleasing parámetro para de escritura no

.h

@interface SKPSMTPMessage : NSObject { 
    NSOutputStream *outputStream; 
    NSInputStream *inputStream; 

    id <SKPSMTPMessageDelegate> delegate; 
} 

. m

[NSStream getStreamsToHostNamed:relayHost port:relayPort inputStream:&inputStream outputStream:&outputStream]; 

Cualquier orientación será muy apreciada.

Gracias.

+0

un vistazo a http: // stackoverflow.com/questions/8138902/existing-ivar-delegate-for-unsafe-unretained-property-delegate-must-be-un –

Respuesta

6

He encontrado la solución adecuada para esta pregunta.

La respuesta es: No se moleste convirtiendo el código manualmente.

sólo tiene que agregar el indicador de compilador -fno-objc-arc a clases importadas

enter image description here

0

Error # 1
Replase

@property(nonatomic, assign) id <SKPSMTPMessageDelegate> delegate; 

Para

@property(nonatomic, _unsafe_unretained) id <SKPSMTPMessageDelegate> delegate; 

No se puede utilizar con assign ARC

Error # 2,3
Intentar no alloc y initoutputStream y inputStream variables.

NSInputStream *inputStream; 
NSOutputStream *outputStream; 
[NSStream getStreamsToHostNamed:relayHost port:relayPort inputStream:&inputStream outputStream:&outputStream]; 
+0

Gracias ... en realidad terminé deshabilitando ARC para esa biblioteca. – dbarrett

+0

Cada vez que deshabilito ARC para mi archivo "SKPSMTPMessage.m" (suponiendo que deshabilitar es lo que sucede cuando agrega la bandera del compilador "-fno-objc-arc") Acabo de recibir un error de Apple Mach-O Linker diciendo que hay un símbolo duplicado encontró. ¿Tuviste este error? Si es así, ¿cómo te las arreglaste? !!? Y si no, ¿qué estoy haciendo mal? Mate –

Cuestiones relacionadas