相关疑难解决方法(0)

声明委托ivar时出现ARC错误

我正在使用ARC(不,这不是NDA).我在我的界面中宣布我的ivar

id itemDelegate;
Run Code Online (Sandbox Code Playgroud)

然后我宣布财产:

@property (nonatomic, weak) id<mySecretDelegateYouAreNotSupposedToSeeOnSO> itemDelegate; (由于ARC而弱而不是分配)

在我的实现文件中,我只是合成它: @synthesize itemDelegate;

但是,我收到错误:

"Existing ivar 'ItemDelegate' for _weak property 'itemDelegate' must be _weak".
Run Code Online (Sandbox Code Playgroud)

谁知道什么是错的?谢谢你的帮助.

ARC - 自动参考计数

iphone ios automatic-ref-counting

27
推荐指数
2
解决办法
2万
查看次数

iOS5 ARC错误:SKPSMTPMessage

我试图将这段代码合并到一个新的(iOS 5)项目中......问题是,我正在使用ARC,它真的不喜欢编写的代码.

我已经能够解决大多数错误,但我遇到了3个错误,我似乎无法弄清楚.

错误#1:

对于unsafe_unretained属性'delegate'的现有ivar'委托'必须是_unsafe_unretained

.H

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

    id <SKPSMTPMessageDelegate> delegate;
}

@property(nonatomic, assign) id <SKPSMTPMessageDelegate> delegate;
Run Code Online (Sandbox Code Playgroud)

.M

@synthesize login, pass, relayHost, relayPorts, subject, fromEmail, toEmail, parts, requiresAuth, inputString, wantsSecure, \
delegate, connectTimer, connectTimeout, watchdogTimer, validateSSLChain;
Run Code Online (Sandbox Code Playgroud)

错误#2:

将非本地对象的地址传递给_autoreleasing参数以进行回写

.H

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

    id <SKPSMTPMessageDelegate> delegate;
}
Run Code Online (Sandbox Code Playgroud)

.M

[NSStream getStreamsToHostNamed:relayHost port:relayPort inputStream:&inputStream outputStream:&outputStream];
Run Code Online (Sandbox Code Playgroud)

任何指导将不胜感激.

谢谢.

ios5 automatic-ref-counting

5
推荐指数
1
解决办法
1587
查看次数

标签 统计

automatic-ref-counting ×2

ios ×1

ios5 ×1

iphone ×1