5
我想在覈心數據NSManagedObject中保留一個塊(如果可能的話)。我有一個NSManagedObject的繼承類。 該類有一個塊來滿足一些異步調用。我嘗試將該塊存儲爲Transformable和Transient屬性。當我嘗試調用塊之前加載我的NSManagedObject我有一個不良的內存訪問"EXC_BAD_ACCESS"
。是否可以在NSManagedObject中存儲塊?
如果我不檢查的變形標誌我有類似這樣的例外:
-[__NSStackBlock__ encodeWithCoder:]: unrecognized selector sent to instance 0xbfffd930
我在的iOS是新。我在啓用ARC的iOS 5 SDK下工作。這是我的代碼摘錄:
#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
當我試圖來存儲塊:
[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"];
最後,當我調用塊和錯誤被觸發:
NSArray *listRegister=... //my ready array
[energyEntry invokeWithData:listRegister];