【问题标题】:Semantic Issue with ARCARC的语义问题
【发布时间】:2013-03-02 00:19:12
【问题描述】:

我的.h 文件中的代码是

@property (weak, nonatomic) IBOutlet UITextField *textFieldTask;
@property (weak, nonatomic) IBOutlet UIBarButtonItem *buttonDone;

错误出现了

“弱”属性的@synthesize 只允许在ARCGC 模式下使用

当我用强替换弱时,按钮不起作用

我无法将其置于 ARC 模式(它会破坏我的项目)

我能做什么?

【问题讨论】:

  • weak 在手动内存管理下没有任何意义。在这种情况下,它是 retainassign

标签: ios objective-c xcode


【解决方案1】:

如果不想使用ARC,则需要使用retainassign

保留

@property (retain, nonatomic) IBOutlet UITextField *textFieldTask;
@property (retain, nonatomic) IBOutlet UIBarButtonItem *buttonDone;

分配

@property (assign, nonatomic) IBOutlet UITextField *textFieldTask;
@property (assign, nonatomic) IBOutlet UIBarButtonItem *buttonDone;

【讨论】:

  • unsafe_unretained 与 MRC 模式下的 assign 相同。
  • 如果 OP 原本想要weak,那么应该使用assign,而不是retain
  • @user2102538 你试过assign吗?
猜你喜欢
  • 1970-01-01
  • 2014-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-05
相关资源
最近更新 更多