gpt4 book ai didi

objective-c语法问题

转载 作者:可可西里 更新时间:2023-11-01 05:24:48 25 4
gpt4 key购买 nike

我来自c++/c#/java阵营,当我看到下面的objective-c语法时,我很困惑......

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
(NSDictionary *)launchOptions { }

据我了解,它是 (return type)functionName:(param type)param;像下面这样

- (void)applicationWillResignActive:(UIApplication *)application { }

参数 (UIApplication *)application didFinishLaunchingWithOptions 是什么?

最佳答案

在 Objective-C 中,参数是方法签名的一部分。您描述的方法的选择器将是 application:didFinishLaunchingWithOptions:。这来自Smalltalk ,虽然它可能使方法声明更难阅读,但它实际上使代码易于阅读:

id anApplication;
id someOptions;

[delegate application:anApplication didFinishLaunchingWithOptions:someOptions];

如您所见,生成的调用代码看起来就像您正在阅读一个短语。

至于 UIApplication 参数,这是您将在整个 Cocoa 中看到的设计选择。委托(delegate)中的所有方法都将接收作为其委托(delegate)对象的第一个参数。这使得您可以重用委托(delegate),并使其逻辑依赖于委托(delegate)的对象。

在这种情况下,您可以对不同的 UIApplication 实例使用相同的 UIApplicationDelegate,并根据某些 UIApplication 参数使其代码有条件.

关于objective-c语法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6284999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com