gpt4 book ai didi

ios - 如何在 XCode 中为 block 变量获取正确的自动完成功能?

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

我有一个作为实例变量存储在类中的 block

typedef void ((^didSelectWord)(NSString* word));
@property (nonatomic,strong) didSelectWord wordSelected;

我希望 xcode 自动填充该 block ,就像您键入 [UIView animateWithDuration 并且 xcode 会为其自动完成一个 block 一样。

当我自动完成我的区 block 时,它就会填满

[self.suggestedSearchTermView setWordSelected:(didSelectWord)wordSelected

代替

[self.suggestedSearchTermView setWordSelected:^(NSString *word) {

是否可以更改某些内容以使 Xcode 了解如何自动完成此 block ?

最佳答案

好的,我做了一些测试。

显然你有两个(远非完美的)选择:

  1. 避免使用 typedef 并将属性声明为

    @property (nonatomic,strong) void (^wordSelected)(NSString * word);

    如评论中所述,这具有在自动完成中跳过参数名称的缺点。

  2. 在接口(interface)中显式添加setter声明

    typedef void ((^DidSelectWordBlock)(NSString* word));

    @interface YourClass : NSObject

    @property (nonatomic,strong) DidSelectWordBlock wordSelected;
    - (void)setWordSelected:(DidSelectWordBlock)wordSelected;

    @end

    这将导致 Xcode 在 setter 定义之前解析类型定义,为您提供您所期望的漂亮的自动完成。明显的缺点是接口(interface)中额外的 setter 声明。

也就是说,您应该填写错误报告:http://openradar.appspot.com/

关于ios - 如何在 XCode 中为 block 变量获取正确的自动完成功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18486209/

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