29,028
社区成员
发帖
与我相关
我的任务
分享
/// --- MCSharedObjectServicer.m 内容
#import "MCSharedObjectService.h"
#ifndef ____MCSharedObjectServiceStruct__
typedef struct __MCSharedObjectServiceStruct {
void * data ;
const char * key ;
}_MCSharedObjectServiceStruct_t;
#endif
@class MCSharedObjectServiceProviderException ;
@interface MCSharedObjectServicer()
{
_MCSharedObjectServiceStruct_t *sharedObjectService ;
}
@end
@implementation MCSharedObjectServicer : NSObject
- (id) init
{
self = [super init] ;
if( self ){
sharedObjectService = malloc(sizeof(_MCSharedObjectServiceStruct_t*)) ; // 结构体 创建空间
}
return self ;
}
- (void) sharedObject : (id) object objectKey : (NSString *) objectKey
{
if( self.delegate && [self.delegate respondsToSelector:@selector(sharedObject:objectKey:)] ){
[self.delegate sharedObject:object objectKey:objectKey] ;
}
else{
if( nil == object ){
@try {
object = [[NSClassFromString(objectKey) alloc] init] ; // 试图创建对象
}
@catch (NSException *exception) {
@throw [MCSharedObjectServiceProviderException exceptionWithReason:@"根据objectKey重构object对象失败" userInfo:exception.userInfo] ;
}
}
sharedObjectService->data = (__bridge void *)(object) ;
sharedObjectService->key = [objectKey cStringUsingEncoding:NSUTF8StringEncoding] ;
}
}
- (id) sharedObjectWithKey : (NSString *) objectKey
{
if( self.delegate && [self.delegate respondsToSelector:@selector(sharedObjectWithKey:)] ){
return [self.delegate sharedObjectWithKey:objectKey] ;
}
return (__bridge id)(sharedObjectService->data) ;
}
。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。。。。
@end
sharedObjectService = malloc(sizeof(_MCSharedObjectServiceStruct_t*)) ; // 结构体 创建空间
LZ确定这样能分配到足够的结构体空间?