ARCはs またはs でのObjective-Cオブジェクトを禁止します。struct
union
追加しない限り、__unsafe_unretained
それは管理されていないことを意味します。
私は、人々がstruct
s の代わりに何を使っているのだろうかと思っていました。
それとも、すべてを手動で保持していますか?
ARCはs またはs でのObjective-Cオブジェクトを禁止します。struct
union
追加しない限り、__unsafe_unretained
それは管理されていないことを意味します。
私は、人々がstruct
s の代わりに何を使っているのだろうかと思っていました。
それとも、すべてを手動で保持していますか?
それは非常に簡単です - 構造体の中にオブジェクトを追加したいのなら、それは間違っています。obj-c オブジェクトを保持する構造体が必要な場合はいつでも、構造体を obj-c オブジェクトに変換します。
次のように、1 つの objc-object でさまざまなオブジェクトを管理します。
@class MyFirst, MySecond;
@interface MyContainer : NSObject
@property (nonatomic, strong, readonly) MyFirst *firstInst;
@property (nonatomic, strong, readonly) MySecond *secondInst;
// optional: convenience initializer
+ (instancetype)containerWithFirstInst:(MyFirst *)firstInst secondInst:(MySecond *)secondInst;
@end
// required by linker: stub definition for the class declared above
@implementation MyContainer
@end
@interface SomeController : NSObject
- (void)doSomething;
@end
@implementation SomeController
- (void)doSomething {
MyFirst *firstInstance = [[MyFirst alloc] initWithSomeParameters:...];
MySecond *secondInstance = [[MySecond alloc] initWithSomeParameters:...];
MyContainer *container = [MyContainer containerWithFirstInst:firstInstance secondInst:secondInstance];
// use container as a struct (but it's definitely an object that is managed by ARC)
}
@end
ここで答えましたhttps://stackoverflow.com/a/28845377/1570826
適切なレベルの誰かが、これまたは他のものを重複としてマークできるかもしれません。