【问题标题】:NSTask / Process deprecated methods and propertiesNSTask / Process 不推荐使用的方法和属性
【发布时间】:2018-04-29 03:07:24
【问题描述】:

在最新的 Apple 文档中,NSTaskProcess 都有几个已弃用的方法和属性,尽管没有任何标记API Availability Macro

实例属性

@property(copy) NSString *launchPath;
@property(copy) NSString *currentDirectoryPath;

var launchPath: String? { get set }
var currentDirectoryPath: String { get set }

实例方法

- (void)launch;

func launch()

类型方法

+ (NSTask *)launchedTaskWithLaunchPath:(NSString *)path 
                             arguments:(NSArray<NSString *> *)arguments; 

class func launchedProcess(launchPath path: String, 
                 arguments: [String]) -> Process

似乎没有可用的替代品,那是什么?

【问题讨论】:

    标签: objective-c swift macos nstask


    【解决方案1】:

    似乎没有可用的替代品

    有,API 现在是 URL 相关的

    实例属性

    @property(copy) NSURL *executableURL;
    @property(copy) NSURL *currentDirectoryURL;
    
    var executableURL: URL? { get set }
    var currentDirectoryURL: URL? { get set }
    

    实例方法

    - (BOOL)launchAndReturnError:(out NSError * _Nullable *)error;
    
    func run() throws
    

    类型方法

    + (NSTask *)launchedTaskWithExecutableURL:(NSURL *)url 
                                    arguments:(NSArray<NSString *> *)arguments 
                                        error:(out NSError * _Nullable *)error 
                           terminationHandler:(void (^)(NSTask *))terminationHandler;
    
    class func run(_ url: URL, 
                   arguments: [String], 
                   terminationHandler: ((Process) -> Void)? = nil) throws -> Process
    

    【讨论】:

    • 有没有地方提到这个变化?谢谢!
    • AFAIR 在 WWDC 视频中提到过。
    • 什么 WWDC 视频?
    • @user426132 What's new in Cocoa, WWDC 2017, 在一个子条款中提到。
    • 2019 年中,XCode 文档仍然没有任何概述或讨论说明。不推荐使用的函数也不指向要使用的新 API。感谢@vadian 指出这些。
    猜你喜欢
    • 1970-01-01
    • 2013-01-11
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多