Here are the formats pandoc parses and writes:
> pandoc --help
pandoc [OPTIONS] [FILES]
Input formats: native, markdown, markdown+lhs, rst, rst+lhs, html,
latex, latex+lhs
Output formats: native, html, html+lhs, s5, docbook, opendocument, odt, latex,
latex+lhs, context, texinfo, man, markdown, markdown+lhs, plain, rst, rst+lhs,
mediawiki, rtf
Unfortunately rtf isn't one of the formats it parses. It is a Haskell program, so it isn't convenient to get it without installing the Haskell Platform. From a parsed document, it can write a sort of 'plain' sub-Markdown, or standard Markdown, or its own enriched Markdown, as well as a pile of other formats. The internal ('native') representation is much richer than the standard Markdown spec requires, so less information will be lost, and you will be able to recover the html for your markdown -- or make a pdf via latex, etc. It is fairly easy to hack at it for special purposes.
I don't know if any of them are stable but there is an increasing number of bindings to the Pandoc libraries from other languages around. A search of Github suggests that the most relevant looking for hooking up with Obj C is the plain C libpandoc. Ruby has the most activity, it seems -- I guess because it's github -- with pandoku, pandoc-ruby, rails-pandoc and so forth.