Basic proj4 conversion UTM grid -> longlat and back

Personally I'd use the Python bindings for the Proj4 library - http://pypi.python.org/pypi/pyproj/1.8.6

Further details at http://pyproj.googlecode.com/svn/trunk/README.html

You can pass your projection parameters directly to the projection object as follows:

PROJ_32756 = """
+proj=utm +zone=56 +south +ellps=WGS84 +datum=WGS84 +units=m +no_defs
"""
p1 = pyproj.Proj(PROJ_32756)

A full list of these strings can be found at http://spatialreference.org/ For zone 56 see http://spatialreference.org/ref/epsg/32756/proj4/

Many of these projections are already built into the library so you can just pass in the code. Below is an example of reprojecting some geojson from one projection to another. You should be able to adapt to your needs.

import pyproj
import simplejson

p1 = pyproj.Proj(init='epsg:3857')
p2 =pyproj.Proj(init='epsg:29902')

json='{"type":"Polygon","coordinates":[[[-972279.15280781,6907135.0149664],[-995516.00940234,6867999.2564914],[-946596.31130859,6844762.3998969],[-964941.19809375,6892459.1055383],[-972279.15280781,6907135.0149664]]]}'

pydata = simplejson.loads(json)
print str(pydata)
new_coords = []
for p in pydata['coordinates'][0]:
    x2, y2 = pyproj.transform(p1,p2,p[0],p[1])
    new_coords.append([x2, y2])

new_json = simplejson.dumps(dict(type="Polygon", coordinates=[new_coords], srid="29902"))
print str(new_json)

You may want to take a look at the route-me project, they seem to have some working examples of wrapping Proj.4 on the iOS platform in Objective-C. The actual transformation looks to happen in Mapview/Map/RMProjection.m.