私はNSBlockOperation
いくつかのオブジェクトを作成するを持っています。とはユーザー情報に入れられNSString
ます。次に、ブロックはそのようなuserInfoを使用してを送信します。NSData
NSDictionary
NSNotification
これはコードフラグメントです:
NSArray *dataHolder = // this array is filled with data created within block
NSArray *keys = [NSArray arrayWithObjects:idKey, notificationDataKey, nil];
NSArray *values = [NSArray arrayWithObjects:identifier, dataHolder, nil];
NSDictionary *userInfo = [NSDictionary dictionaryWithObjects:values forKeys:keys];
// notification follows
このコードには特別なことは何もありません。私の懸念はdataHolderに関するものです。これは、NSArray
そのNSData
場で画像を作成するために使用され、表示(操作なし)に使用するために渡され、ブロックはまたはを使用していません。通知後にそれらを変更する。
複数のコントローラーが稼働していてそのデータを待機している可能性があるため、委任を使用できません。
このシナリオが何らかの問題を引き起こす可能性があるかどうか、そして変数に特別な注意を払う必要があるかどうか、たとえば、弱い、強い、ブロックなどでそれらをマークする必要があるかどうかを尋ねています。
プロジェクト全体がARCの下にあります。