2012-03-04 16 views
5

Bu bit of code'u yeni (iOS 5) projeye dahil etmeye çalışıyorum ... Sorun şu ki, ARC kullanıyorum ve GERÇEKTEN yazılan kodu beğenmiyor.iOS5 ARC hataları: SKPSMTPMessage

Hataların çoğunu çözmeyi başarabiliyorum, ancak anlamayacağımı düşündüğüm 3 hata ile sıkıştım.

Hata # 1: Mevcut ivar unsafe_unretained mülkiyet 'temsilci' için 'temsilci' _unsafe_unretained edilmelidir

.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; 

hatalar 2. & # 3: yazma geri

.H

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

    id <SKPSMTPMessageDelegate> delegate; 
} 

için parametre _autoreleasing için yerel olmayan nesne

geçen adresi. m

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

Herhangi bir rehberlik büyük takdir edilecektir.

Teşekkürler.

+0

http göz at için derleyici bayrağı -fno-objc-arc eklemeniz gerekir.com/questions/8138902/varolan-ivar-delegeye-güvensiz-ilgisiz-mülkiyet-delege-must-be-un –

cevap

6

Bu soru için doğru çözümü buldum.

Yanıt şu şekildedir: Kendiniz kodu el ile dönüştürme zahmetine girmeyin. // stackoverflow:

Sadece ithal sınıflar

enter image description here

0

Hata 1.
Replase

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

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

Sen

Hata # 2,3
deneyin ARC ile assign kullanamazsınız değil alloc ve initoutputStream ve inputStream değişkenleri.

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

Teşekkürler ... Aslında bu kitaplık için ARC'yi devre dışı bıraktım. – dbarrett

+0

"SKPSMTPMessage.m" dosyası için ARC'yi her kapattığımda (Derleyici Bayrağı "-fno-objc-arc" eklentisini eklediğinizde devre dışı bırakma gerçekleştiğini varsayarak) yinelemeli bir sembol olduğunu söyleyen bir Apple Mach-O Bağlayıcı Hatası alıyorum buldum. Bu hatayı aldın mı? Eğer öyleyse nasıl yuvarlandınız? Ve değilse, ne yanlış yapıyorum? Mat –