我有一个NSBlockOperation
创建一些对象的。一个NSString
andNSData
被放入一个用户信息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
of NSData
,特别是它用于动态创建图像并传递用于显示(无操作),并且该块未使用或通知后更改它们。
我不能使用委托,因为几个控制器可能还活着并等待该数据。
我在问这种情况是否会导致任何类型的问题,以及我是否需要特别注意变量,例如用弱、强、块或其他标记它们。
整个项目都在ARC之下。