I just discovered this apps pypad and python for ios
They have like an interpreter an editor
So which app would you recomend
But most importantly, how does this interpreter work, and where can i see an example of how the obj c and python get to work togheter?
Thanks!
解决方案
I am the sole creator of Python for iOS so that is of course what I would recommend, but a good indicator for your personal decision is the reviews & ratings of each App. It took me weeks to figure out how to properly integrate python into Objective-c for this App but here is the best resource to get you started (keep in mind that ObjC is just a superset of C):
Also, here is an example of calling a function defined in myModule. The equivient python would be:
import myModule
pValue = myModule.doSomething()
print pValue
In Objective-c:
#include
- (void)example {
PyObject *pName, *pModule, *pDict, *pFunc, *pArgs, *pValue;
NSString *nsString;
// Initialize the Python Interpreter
Py_Initialize();
// Build the name object
pName = PyString_FromString("myModule");
// Load the module object
pModule = PyImport_Import(pName);
// pDict is a borrowed reference
pDict = PyModule_GetDict(pModule);
// pFunc is also a borrowed reference
pFunc = PyDict_GetItemString(pDict, "doSomething");
if (PyCallable_Check(pFunc)) {
pValue = PyObject_CallObject(pFunc, NULL);
if (pValue != NULL) {
if (PyObject_IsInstance(pValue, (PyObject *)&PyUnicode_Type)) {
nsString = [NSString stringWithCharacters:((PyUnicodeObject *)pValue)->str length:((PyUnicodeObject *) pValue)->length];
} else if (PyObject_IsInstance(pValue, (PyObject *)&PyBytes_Type)) {
nsString = [NSString stringWithUTF8String:((PyBytesObject *)pValue)->ob_sval];
} else {
/* Handle a return value that is neither a PyUnicode_Type nor a PyBytes_Type */
}
Py_XDECREF(pValue);
} else {
PyErr_Print();
}
} else {
PyErr_Print();
}
// Clean up
Py_XDECREF(pModule);
Py_XDECREF(pName);
// Finish the Python Interpreter
Py_Finalize();
NSLog(@"%@", nsString);
}