To avoid retain cycles and the warnings "capturing self strongly in this block is likely to lead to a retain cycle" i have add for every object in my block something like this

```
MyViewController *__weak weakSelf= self;
NSMutableArray *__weak weakArray=AnArray;
UILabel *__weak weakLabel=ALabel;

///the block code with some examples
 up2.completionBlock = ^(NSDictionary *headers, NSString *responseString) { 

       [weakSelf aMethodInTheController];
       [weakLabel setHidden:NO];
       [weakArray addObject:@"something"];

 };

```

With a weak reference the retain cycle warnings are disappeared,but there's a problem if i introduce inside the block a nnstring that must be setted

```
MyViewController *__weak weakSelf= self;
NSMutableArray *__weak weakArray=AnArray;
UILabel *__weak weakLabel=ALabel;

NSString *__weak weakString=AString;

///the block code with some examples
up2.completionBlock = ^(NSDictionary *headers, NSString *responseString) { 

   [weakSelf aMethodInTheController];
   [weakLabel setHidden:NO];
   [weakArray addObject:@"something"];
   weakString=@"atext";

 };

```

In this way i receive the error "variable is not assignable (missing \_*block type specifier)", so i have added "*\_block"

```
MyViewController *__weak weakSelf= self;
NSMutableArray *__weak weakArray=AnArray;
UILabel *__weak weakLabel=ALabel;

NSString *__weak weakString=AString;
__block NSString *BlockString =  weakString;    

///the block code with some examples
up2.completionBlock = ^(NSDictionary *headers, NSString *responseString) { 

[weakSelf aMethodInTheController];
[weakLabel setHidden:NO];
[weakArray addObject:@"something"];
 BlockString=@"atext";

 };

```

In this way all seems to work correctly,at least until i'm inside the block... My original Astring variable is defined in the .h of my viewController, i have to access to its value later and outside the block, but it's value is always nil. Assign @"atext" to BlockString do not set a value to my original Astring variable? How i can do to set the value of a variable setted in .h of my viewController without receive warnings and without exit from the block?