Quiero persistir un bloque dentro de los datos centrales NSManagedObject si es posible. Tengo una clase heredada de NSManagedObject. Esta clase tiene un bloque para satisfacer algunas llamadas asincrónicas. Traté de almacenar el bloque como un atributo Transformable y Transitorio. cuando intento invocar el bloque antes de cargar mi NSManagedObject, tengo un acceso de memoria incorrecto al "EXC_BAD_ACCESS"
.¿Es posible almacenar un bloque dentro de un NSManagedObject?
Si no activa la bandera transformable tengo una excepción similar a esto:
-[__NSStackBlock__ encodeWithCoder:]: unrecognized selector sent to instance 0xbfffd930
Soy nuevo en IOS. Estoy trabajando con iOS 5 SDK con ARC habilitado. Este es un extracto de mi código:
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@class ModbusRegister, Board;
typedef void (^DataBlockType)(NSArray *listRegister);
@interface EnergyEntry : NSManagedObject
- (void)invokeWithData: (NSArray *)listRegister;
@property (nonatomic, copy) DataBlockType datablock;
@end
#import "EnergyEntry.h"
@implementation EnergyEntry
@dynamic datablock;
- (void)invokeWithData: (NSArray *)listRegister{
self.datablock(listRegister);
}
@end
Cuando traté de guardar el bloque:
[energyEntry setValue:@"Energía activa" forKey:@"name"];
[energyEntry setValue:[NSNumber numberWithDouble:0] forKey:@"value"];
[energyEntry setValue:currentBoard forKey:@"board"];
[energyEntry setValue:^(NSArray *listRegister){
//...my block operations to store
} forKey:@"datablock"];
Finalmente cuando invoco el bloque y el error se dispara:
NSArray *listRegister=... //my ready array
[energyEntry invokeWithData:listRegister];