Diese Frage ist zwar sehr alt, aber ich würde sie trotzdem gerne beantworten, um sie abzuschließen. Ich würde zxing empfehlen, da es alle in der Frage erwähnten Codes unterstützt.
Seit iOS7 besteht jedoch auch die Möglichkeit, die eingebaute Scanner-API zu verwenden (die ich nach ein paar Stunden Tests schneller und genauer als zxing gefunden habe). Ich fand auch die Cocoa-APIs etwas einfacher in eine benutzerdefinierte UI zu integrieren. Der Nachteil ist, dass meines Wissens nach Data Matrix nicht unterstützt wird.
Eine dritte Option wäre eine clevere Kombination aus beiden zu verwenden, vielleicht auch um sanft für Geräte vor iOS7 abzufallen.