macOS 11.0 Big Sur上でUTIまわりの機構が大幅に変更になり、従来のUTI関連の機構がDeprecatedになったため、新規導入されたUniformtypeIdentifiersフレームワークまわりをかるく調べてみました。
なーーんで、いまごろこんな根幹の部分をいじくり出したのかさっぱりわかりませんが、NSStringにファイルパス操作系とかUTI系とかの機能がごった煮の状態で突っ込まれているので、そのあたりを整理したかったのでしょうか(それなら話はわかる気がする)。
これまでiCloudを介してファイルをやりとりしていたmacOSとiOSが、同じファイルシステム上でファイルのやりとりを行い出すために整備が必要だったと見るべきか、予算が確保できたから工事しておこうという気になったのか。
最近はAppleの各種フレームワークのオンラインドキュメントのページで強制的にSwiftをデフォルトで表示するように変更されたことからも見て取れるように(調べ物していてものすごく邪魔なんですが)、Swiftの将来的なバージョンアップに合わせてAPIを整理しだしたのかもしれません。
# Swiftはプログラム書くのに記号が多く(C言語っぽすぎ)、言語仕様が雪だるま式に膨らんできて好きになれない
macOS 11.0ではまだ従来どおりのUTI系の機能が使えるようですが、それ以降で徐々に廃止に持って行かれるのでしょう。ただ、Dynamic UTI(実行時のコンピュータに書類を作成したソフトウェアが存在していない場合などに使われるUTI)まわりの機能が用意されていないあたりは機能が不完全な印象があります>UniformtypeIdentifiersフレームワーク
AppleScript名:UTI Test on Big Sur |
— – Created by: Takaaki Naganoya – Created on: 2020/07/18 — – Copyright © 2020 Piyomaru Software, All Rights Reserved — use AppleScript version "2.7" –Big Sur(11.00) or later use framework "Foundation" use framework "UniformtypeIdentifiers" use scripting additions set aType to current application’s UTType’s typeWithIdentifier:"com.apple.applescript.script-bundle" set aLocDesc to aType’s localizedDescription() as string –> "スクリプトバンドル" set aVer to (aType’s publicType) as boolean –> false set aDec to (aType’s declared) as boolean –> true set aDyn to (aType’s dynamic) as boolean –> false set aURL to (aType’s supertypes) –> (* (NSSet) <_UTCoreType 0x7fff8b467a80> com.apple.package, <_UTCoreType 0x7fff8b466ea0> public.item, <_UTCoreType 0x7fff8b466f40> public.directory, <_UTCoreType 0x7fff8b467aa0> com.apple.bundle } *) –UTI上で同じレベルにあるものはconfirmsToTypeで調べてもtrueにならない set bType to current application’s UTType’s typeWithIdentifier:"com.apple.applescript.script" set aConf to (aType’s conformsToType:bType) –> false set cType to current application’s UTType’s typeWithIdentifier:"public.image" set dType to current application’s UTType’s typeWithIdentifier:"public.png" set bConf to (cType’s conformsToType:dType) –> false –UTI Treeで下位概念にあるもの(public.png)は上位概念のもの(public.image)にconfirmsToTypeで包含されていることを調査できる set cConf to (dType’s conformsToType:cType) –> true |
More from my site
(Visited 176 times, 1 visits today)
2020年に書いた価値あるAppleScript – AppleScriptの穴 says:
[…] macOS 11.0上のUTIのじっけん […]