myDataTask has a block which retains self, and self retains myDataTask leading 
to a cycle, would be my first thought. If nothing else also holds onto that, 
you'd expect leaks to find it and give you a nice diagram showing how it all 
hangs together, I believe leaks tracks dispatch_* (although I've never tried 
it, they are full ARC'y objects now). 

On 21 Apr, 2014, at 8:27 pm, Dave <d...@looktowindward.com> wrote:

> 
> On 21 Apr 2014, at 12:04, Roland King <r...@rols.org> wrote:
> 
>> 
>> On 21 Apr, 2014, at 6:45 pm, Dave <d...@looktowindward.com> wrote:
>> 
>>> 
>>> It does use isKindOfClass, I wasn’t trying to be 100% correct on the fluff, 
>>> just showing giving an example of the type of thing going in in property 
>>> assignment.
>>> 
>>> I didn’t write that part it was like that and by all account it sort of 
>>> worked.
>>> 
>>> I may just revert back to the non-ARC version do manual Memory Management 
>>> as ARC seems very difficult to debug, especially since you can’t get at 
>>> things like “retainCount” or override “retain”, “release” etc.
>>> 
>> 
>> It's not really hard to debug, it's just different. retainCount never was a 
>> very good indicator of what was going on anyway. I really do suggest using 
>> Instruments, that even pairs up retains and releases for you in the detailed 
>> logging so you can often figure out what the dangling one is. 
> 
> I’ll have a look, because it is a bit of a retrograde step to get rid of ARC 
> now that I’ve gone to all the trouble of converting it.
> 
> I found using retainCount in conduction with some overrides worked 
> wonderfully for me, but I’ll have a go using instruments. One of the things 
> that I can’t seem change is that whenever I run the Profile, it selects an 
> iPad retina instead of a normal iPad which takes up the while screen. I’ll 
> have another go and try to get it to work on the normal iPad.
> 
> Here is an extract of one of the methods I suspect of being the root cause. 
> I’m wondering if something is wrong with the wat the Code Block works. I 
> haven’t changed that bit, just made it ARC (which is why you will see some 
> releases commented out). Also, when I did this, I left the property 
> attributes as “retain” and “assign”, I’m wondering if it would be better to 
> change them to “strong” and “weak” ? Although, AFAIK this shouldn’t make a 
> difference?
> 
> -(JMNetworkCommandResponse*) 
> executeSyncRequestWithParameters:(JMNetworkRequestParams*) 
> theRequestParameters
> {
> JMNetworkCommandResponse*                             myNetworkResponse;
> long                                                                          
> myTimeOutStatus;
> dispatch_group_t                                                      
> myDispatchGroup;
> NSURL*                                                                        
> myURL;
> NSMutableURLRequest*                                          myURLRequest;
> NSURLSessionDataTask*                                 myDataTask;
> NSString*                                                                     
> myParameterString;
> NSData*                                                                       
> myBodyData;
> JMNetworkRequestHTTPDataMethod                        myTransferMethod;
> JMNetworkOperationiOS7*                                       
> myNetworkOperation;
> 
> myURL = [[NSURL alloc] initWithString:theRequestParameters.pRequestURLString];
> if (myURL == nil)
>       return nil;
> 
> myNetworkOperation = [self 
> newOperationWithRequestParameters:theRequestParameters];
> 
> myDispatchGroup = dispatch_group_create();
> dispatch_group_enter(myDispatchGroup);
> 
> myDataTask = [self.pNetworkCommandURLSession dataTaskWithURL:myURL 
> completionHandler:^(NSData* theResponseData,NSURLResponse* 
> theURLResponse,NSError* theErrorInfo)
>       {
>       JMNetworkCommandResponse*                       myNewNetworkResponse;
>       NSHTTPURLResponse*                                      
> myHTTPURLResponse;
>       NSInteger                                                       
> myHTTPStatus;
> 
>       myHTTPURLResponse = (NSHTTPURLResponse*) theURLResponse;
>       myHTTPStatus = myHTTPURLResponse.statusCode;
>                       
>       myNewNetworkResponse = [self 
> newNetworkResponseWithRequestParameters:theRequestParameters 
> andURLResponse:theURLResponse andResponseData:theResponseData 
> andErrorInfo:theErrorInfo];
>       [self setNetworkResponse:myNewNetworkResponse 
> withRequestID:theRequestParameters.pRequestID];
> 
>       [myNetworkOperation.pResponseNetworkDelegate 
> performDelegateSelectorOnMainThreadWithObject:myNewNetworkResponse];
>       
>       dispatch_group_leave(myDispatchGroup);
>       }
>       ];
>       
> [myDataTask resume];
> 
> //    dispatch_release(myDispatchGroup);
> 
> //**
> //**  Extract the Response from the Dictionary and Reset the Request
> //**
> myNetworkResponse = [self 
> getNetworkResponseWithRequestID:theRequestParameters.pRequestID];
> [self removeNetworkResponseWithRequestID:theRequestParameters.pRequestID];
>       
> return myNetworkResponse;
> }
> 
> 
> Thanks a lot
> Dave
> 
> 
> 
> 
> _______________________________________________
> 
> Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
> 
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
> 
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/cocoa-dev/rols%40rols.org
> 
> This email sent to r...@rols.org


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to