2013-07-15 7 views
0

im загружая мои изображения в amazon s3 bucket.im, записывая мой код в отдельном классе Amazons3, Я получаю переменную экземпляра ошибки s3, доступную в классе method.how для решения этой ошибки .im создав конструктор для инициализации переменной. Могли бы вы, ребята, помочь мне.Переменная экземпляра s3, доступная в методе класса

-(id) init 
    { 
    self = [super init]; 
    if(self) 
    { 

     if(self.s3 == nil) 
     { 
      // Initial the S3 Client. 
      self.s3 = [[AmazonS3Client alloc] initWithAccessKey:ACCESS_KEY_ID withSecretKey:SECRET_KEY]; 
     } 
    } 
    return self; 
} 

+(void)uploadImage:(Products *)product 
{ 

    NSData *uploadData = [NSData dataWithContentsOfFile:[Util getFilePathForFileName:[NSString stringWithFormat:@"%@ios.mp4",product.productImageUrl]]]; 
    S3PutObjectRequest *por = [[S3PutObjectRequest alloc] initWithKey:[NSString stringWithFormat:@"%@.mp4",product.productImageUrl] inBucket:BUCKET_NAME]; 
    por.contentType = @"application/octet-stream"; 
    por.cannedACL = [S3CannedACL publicRead]; 
    por.data = uploadData; 
    S3PutObjectResponse *putObjectResponse = [s3 putObject:por]; 
    if(putObjectResponse.error !=nil) 
    [self performSelectorOnMainThread:@selector(showCheckErrorMessage:) withObject:putObjectResponse.error waitUntilDone:NO]; 
} 

ответ

1

Возможно, что ваш uploadImage: должен быть методом экземпляра. Измените свою подпись на -(void)uploadImage:(Products *)product.

Ваша ошибка довольно самообучающаяся: атрибут экземпляра (для объекта) не может быть доступен в методе класса (для каждого класса). Для доступа к атрибуту объекта необходим объектный объект;)

Смежные вопросы