皆さんお久しぶりです。1年ぶりでしょうか...
今回の記事はiOSアプリであるa-Shellからobjc_utilを使うという記事です。
結論から言いますとPythonista3からダイレクトに輸入してもそのままでは動きません。
objc_utilの1151行目にあるinspect.getargspec(method)をinspect.getfullargspec(method)にしたりする必要があります。
逆に言えば変更箇所はその程度で動きます。
さて、今度はa-Shellでスクリプトを動かしてみたいと思います。
pome-taさんのスクリプトを今回は使います。
import pdbgをコメントアウトして使います。
動かすと...そのまま「python 231010_1947.py」とやるとクラッシュすると思います。
対処方法は...力技ですが..以下追記します。
def main():
ovc = ObjcUIViewController.new()
present_objc(ovc)
def _main():
import sys, os, concurrent.futures, time
_file = sys.argv[0].replace('.py', '').split(os.sep)[-1]
def target(_file):
exec('import {};print({}.main())'.format(_file, _file), globals())
while True:
time.sleep(1)
with concurrent.futures.ThreadPoolExecutor(os.cpu_count() * 9999) as thread:
thread.submit(target, _file)
thread.shutdown()
if __name__ == '__main__':
_main()
こちらの対処方はスクリプトからスクリプトを読み込む禁忌の手法でスクリプトを起動し、マルチスレッドで無限に待ち続ける対処方法です。
こちらを追記してようやくクラッシュしなくなりました。
こちらを応用すればa-Shellからコマンド一つでUIが起動するようになったりします。
夢が広がりますね!
今回はここまでにします。また次回お会いしましょう( 。・ω・)ノシ