私はAppleのARCを使用しています。私はクラスを持っている:1つはNSMutableSetを持ち、もう1つはそのNSMutableSetの中に入れたいクラスです。他のオブジェクトの内側のコンテナにオブジェクトを追加する場合は、円弧でヌルです
だから私は、次の手順を実行したとき:
ContainerClass* contClass = [[ContainerClass alloc] init];
for(int i = 0;i<10;i++)
{
SmallClass* myClass = [[SmallClass alloc] init];
[myClass setinfo:i];
[contClass.mySet addObject:myclass];
}
for(SmallClass* cls in contClass.mySet){
NSLog(@"%@", cls);
}
結果は次のとおりです(ヌル)(null)の(ヌル)など(ヌル)
それは小さい種類がARCによって解放されていることを意味してい?どうすれば解決できますか(私はもちろん留保できません)? myClassのコピーを実装していないため、myclassインスタンスのコピーを呼び出すとエラーが発生します(以前のARCの方法では、そのまま保持します)。
ContainerClassコード:
@interface ContainerClass : NSObject {
NSString* _icon;
NSMutableSet* _mySet;
}
@property (nonatomic, strong) NSString* icon;
@property (nonatomic, strong) NSMutableSet* mySet;
@end
と実装:
@implementation ContainerClass
-(id) init
{
_myset = [[NSMutableSet alloc] init];
return [super init];
}
@synthesize mySet = _mySet;
@end
ContainerClassのコードを教えてください。 –
'@interface ContainerClass:NSObject { NSString * _icon; NSMutableSet * _mySet; } @property(nonatomic、strong)NSString *アイコン; @property(非原子的、強い)NSMutableSet * mySet; end' @と.mファイル: '@implementation PoiSet - (ID)は、initの {_myset = [[NSMutableSetのALLOC] INIT]。 [スーパーinit]を返します。 } @synthesize mySet = _mySet; @end' – amir
申し訳ありません。このコメントシステムは初めてです。ここをクリックしてください。 http://codetidy.com/1725/ – amir