का उपयोग कर कोको एप्लिकेशन से पाइथन लिपि चला रहा है मैं कोको ऐप से पाइथन लिपि चलाने की कोशिश कर रहा हूं। यह मुख्य धागे पर ठीक काम कर रहा है, लेकिन मैं समवर्ती जीसीडी कतार पर पृष्ठभूमि में इसे चलाना चाहता हूं।जीसीडी
मैं सेटअप करने के लिए है कि अजगर स्क्रिप्ट चलाने से एक प्रबंधक वर्ग के लिए निम्न विधि का उपयोग कर रहा:
- (BOOL)setupPythonEnvironment {
if (Py_IsInitialized()) return YES;
Py_SetProgramName("/usr/bin/python");
Py_Initialize();
NSString *scriptPath = [[NSBundle mainBundle] pathForResource:@"MyScript" ofType:@"py"];
FILE *mainFile = fopen([scriptPath UTF8String], "r");
return (PyRun_SimpleFile(mainFile, (char *)[[scriptPath lastPathComponent] UTF8String]) == 0);
}
स्क्रिप्ट है जो बाद (बार-बार) निम्नलिखित उदाहरण विधि से कहा जाता है, का एक साझा सिंगलटन उदाहरण का उपयोग करते हुए प्रबंधक वर्ग:
from Foundation import *
def run_with_arguments(arguments):
# ...a long-running script
class MyScriptExecutor(NSObject):
@classmethod
def runWithArguments_(self, arguments):
return run_with_arguments(arguments)
:
- (id)runScriptWithArguments:(NSArray *)arguments {
return [NSClassFromString(@"MyScriptExecutor") runWithArguments:arguments];
}
ऊपर ऑब्जेक्टिव-सी कोड निम्नलिखित पायथन कोड में हुक
यह तब काम करता है जब मैं मुख्य कतार से उपर्युक्त उद्देश्य-सी विधियों को चलाता हूं, लेकिन किसी अन्य कतार से चलने पर स्क्रिप्ट शून्य हो जाती है। क्या कोई मुझे समझा सकता है कि मैं जो करने की कोशिश कर रहा हूं वह सिर्फ समर्थित नहीं है, और इसके आसपास कोई अच्छा तरीका है या नहीं?
पायथन स्क्रिप्ट को अक्सर कहा जाता है और लंबे समय तक चलता है, इसलिए मुख्य धागे पर ऐसा करना बहुत धीमा होगा, यह एक धारावाहिक कतार बन जाएगा। इसके अलावा, मैं जितना संभव हो सके उद्देश्य-सी के भीतर समवर्ती कोड शामिल करना चाहता हूं।
धन्यवाद,
वास्तव में यह जानने के लिए पर्याप्त जानकारी नहीं है कि आप क्या कर रहे हैं। – jkh
क्या आप मुझे बताएंगे कि आपने पाइथन बाइनरी को xcode के साथ कैसे एकीकृत किया? – bijan