Tôi muốn tồn tại một khối bên trong dữ liệu lõi NSManagedObject nếu có thể. Tôi có một lớp kế thừa từ NSManagedObject. Lớp này có một khối để đáp ứng một số cuộc gọi không đồng bộ. Tôi đã cố gắng để lưu trữ các khối như là một biến thể và thuộc tính thoáng qua. khi tôi cố gắng gọi khối trước khi tải NSManagedObject của tôi, tôi có quyền truy cập bộ nhớ kém "EXC_BAD_ACCESS"
.Có thể lưu trữ một khối bên trong NSManagedObject không?
Nếu tôi không kiểm tra cờ năng biến Tôi có một ngoại lệ tương tự như sau:
-[__NSStackBlock__ encodeWithCoder:]: unrecognized selector sent to instance 0xbfffd930
Tôi mới trong iOS. Tôi đang hoạt động trong SDK iOS 5 có bật ARC. Đây là một chiết xuất từ mã của tôi:
#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
Khi tôi đã cố gắng để lưu trữ các khối:
[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"];
Cuối cùng khi tôi gọi khối và lỗi là bắn:
NSArray *listRegister=... //my ready array
[energyEntry invokeWithData:listRegister];