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/archive%40mail-archive.com

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

Reply via email to