Skip to content

Instantly share code, notes, and snippets.

@RobbieClarken
Last active December 10, 2015 06:28
Show Gist options
  • Save RobbieClarken/4394767 to your computer and use it in GitHub Desktop.
Save RobbieClarken/4394767 to your computer and use it in GitHub Desktop.
Using Betfair SOAP API in Objective C
  • Generate SOAP helper classes for the Global and Exchange WSDLs using SudzC. Be sure to choose the code bundle type that uses ARC.
  • SudzC will generate properties with names beginning with "new" which the compiler will error on. This can be fixed by running the following in the Source directories generated by SudzC:
find . -name "*.h" | xargs -I{} sed -i "" "s/@property (retain, nonatomic) NSString\* new\(.*\);/@property (retain, nonatomic, getter=theNew\1) NSString\* new\1;/" {}
  • Remove the Soap and TouchXML folders from the Exchange bundle created by SudzC to avoid adding duplicate classes.
  • Remove the Source/Generated/Soap+Prefix.h files (they are only used in the SudzC example projects).
  • Add the SudzC Source folders to your Xcode project.
  • In "Build Settings":
  • Add to "Other Linker Flags": -lxml2.
  • Add to "Header Search Paths": /usr/include/libxml2.
  • In "Build Phases" add the SystemConfiguration framework.
  • In SoapRequest.m make the following change:
-CXMLNode* element = [[Soap getNode: [doc rootElement] withName: @"Body"] childAtIndex:0];
+CXMLNode* element = [[Soap getNode: [doc rootElement] withName: @"soap:Body"] childAtIndex:0];
  • In Soap.m make the following change:
-[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS"];
+[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"];
+[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment