0
私は、いくつかのクラスとスレッドがNSMutableArrayを更新しているシングルトンを持っています。しかし、NSMutableArrayにアクセスすると、NSMutableArrayの内容が空であることがわかります。iOS:別のスレッドからのObjective-Cプロパティ呼び出しが空です。
これは私のコードの一部です:
@property (strong, nonatomic) NSMutableArray *myArray;
-(NSMutableArray*) myArray{
if (_ myArray == nil) {
_myArray = [[NSMutableArray alloc]init];
}
return _myArray;
}
-(void)addToArray:(NSString*)myString{
[self.myArray addObject:myString];
}
NSMutableArraysは常に空ですなぜあなたのどれもが知っていますか?
私は本当にあなたの助けに感謝ます
_とmyarrayの間にスペースはありますか?それはあなたの質問や実際のコードの誤字ですか? NSMutableArrayはスレッドセーフではありません。シリアルディスパッチキューまたは@synchronizedを使用して、同時アクセスから保護することをお勧めします。また、あなたの配列を割り当てるためにdispatch_onceブロックを使用する必要があります – Paulw11
@ Paulw11、それはタイプミスでした。 @synchronizedの使い方の例を投稿できますか? – user2924482