0
.h
   @interface sample : NSObject{
    @public
    NSData* data;
    int val;
  }

.m

@implementation sample

-(id) init:(NSData*)data{
 if (self = [super init]) {
    [self initdata:data];
    }
    NSLog(@"@@@ self %@",self);
    NSLog(@"@@@ self->data %@",self->data);

   return self;
 }
-(void) initdata:(NSData*) data{
 @try{
  self->data = [[NSData alloc]initWithData:data];
     self->val = 10;
 }@catch (NSException* e) {

    }
  }
}

从 initdata 方法返回后,如果我打印值,它为空。 当我将应用程序从 xcode 安装到 iphone 时,一切正常,但是当我使用 testflight 或 itunes 安装时,所有实例变量都为空。

它看起来很简单,我试过但无法解决。

编辑:

.m
-(id) init:(NSData*)data{
if (self = [super init]) {
    [self initDecodeOffline:data];
}
NSLog(@"@@@ VSF self %@",self);
NSLog(@"@@@ VSF self->SBI %@",self->SBI);

return self;
}
-(void) initDecodeOffline:(NSData*) data{
    @try{
  self->SBI = [[NSData alloc]initWithData:SBI];
        NSLog(@"@@@ VSF SBI-->%@",self->SBI);
    }@catch (NSException* e) {
    self->inErrorState = true;
   }
}
.h
@interface BarCodeProduct : NSObject{
  @public
 int selectedQuantity;
 long rmsCartIndex;
     int referenceId;
     NSData* SBI;
     int maxAllowed;
}
-(id) init:(NSData*)data;
@end
4

0 回答 0