私はinputName(NSMutableString)というivarを持つEngineという単純なクラスを作成しました。プロパティは設定されており、すべて正常に動作します。私が作成したエンジンのインスタンスcarを作成し、inputNameを設定すると、次の警告が表示されます。 危険なプロパティに保持されたオブジェクトを割り当てると、割り当て後にオブジェクトが解放されます。 メッセージとは別に、car.inputNameにメモリが割り当てられ、正しく初期化されています。ivar(NSMutableString)を作成すると警告が表示されます
プロパティ(@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;
}
おそらくこれはARCプロジェクトですか? – trojanfoe
@trojanfoe - はい - これはARCプロジェクトです – pete