यदि संभव हो तो मैं मूल डेटा NSManagedObject के अंदर एक ब्लॉक को जारी रखना चाहता हूं। मेरे पास NSManagedObject से विरासत कक्षा है। इस कक्षा में कुछ एसिंक्रोनस कॉल को संतुष्ट करने के लिए एक ब्लॉक है। मैंने ब्लॉक को ट्रांसफॉर्म करने योग्य और क्षणिक विशेषता के रूप में स्टोर करने का प्रयास किया। जब मैं अपने NSManagedObject लोड करने से पहले ब्लॉक को आज़माने का प्रयास करता हूं तो मेरे पास खराब स्मृति पहुंच "EXC_BAD_ACCESS"
है।क्या एनएसएएनएजेडऑब्जेक्ट के अंदर एक ब्लॉक को स्टोर करना संभव है?
मैं बदला जाने वाला झंडा चेक नहीं करते हैं मैं एक अपवाद इस के समान है:
-[__NSStackBlock__ encodeWithCoder:]: unrecognized selector sent to instance 0xbfffd930
मैं आईओएस में नया हूँ। मैं एआरसी सक्षम के साथ आईओएस 5 एसडीके के तहत काम कर रहा हूँ। यह मेरा कोड से एक उद्धरण है:
#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];