我创建了一个名为 Engine 的简单类,它有一个名为 inputName ( NSMutableString ) 的 ivar。属性已设置好,一切正常。当我创建名为 car 的 Engine 实例并设置 inputName 时,我收到以下警告: 将保留的对象分配给不安全的属性,分配后对象将被释放。 除了消息之外, car.inputName 已被分配内存并正确初始化。
声明属性时(@property NSMutableString *inputName;)我没有分配任何属性。但是,如果我添加(强),我不会收到上述警告。当 strong 是默认属性时,这怎么可能?以及给 car.inputName 一个字符串的最佳方法是什么。
#import "Engine.h"
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
Engine *car = [[Engine alloc]init];
car.inputName = [[NSMutableString alloc]initWithString:@"Ford Escot"];
// yellow warning:Assigning retained object to unsafe property, object will be released after assignment
}
return 0;
}