小编adi*_*dib的帖子

是否有一个预处理器宏可以扩展到当前选择器?

可能重复:
动态检索当前方法的名称
Obj-C introspection:方法如何引用它自己的选择器?

这适用于Objective-C,是否有预处理器宏或某些东西来获取当前选择器的SEL值?具体来说,我正在寻找类似的东西:

-(void) someSelector
{
    SEL mySelector = __CURRENT_SELECTOR__;
    NSLog(@"I'm in selector %@",NSStringFromSelector(mySelector));
}
Run Code Online (Sandbox Code Playgroud)

它有点像__FILE__宏,但这是为了获得当前的选择器.如果更改选择器名称,将其传递给其他人并不担心更新它非常有用.

objective-c predefined-macro c-preprocessor

3
推荐指数
1
解决办法
744
查看次数

Swift中X的通用集合?

我正在尝试制定一个委托协议,它可以接收X类型的对象集合.该协议的相同方法应该能够采用以下实例:

  • Set<X>
  • Array<X>
  • LazyMapCollection<Dictionary<_, X>, X>(最后一个来自Dictionary.values)

问题是,如何声明协议方法?

以下是一些不能正常工作的候选方法声明:

public protocol BlahDelegate : NSObjectProtocol {
    // won't compile; 'cannot specialize generic type "Sequence"'
    func blah(_ sender: Blah,foundStuff stuff: Sequence<Stuff>)

    // won't compile; 'cannot specialize generic type "Collection"'
    func blah(_ sender: Blah,foundStuff stuff: Collection<Stuff>)

    // this can't take in Set<Stuff> nor LazyMapCollection<Dictionary<_, Stuff>, Stuff>
    func blah(_ sender: Blah,foundStuff stuff: Array<Stuff>)

    // this can't take in Array<Stuff> nor LazyMapCollection<Dictionary<_, Stuff>, Stuff>
    func blah(_ sender: Blah,foundStuff stuff: Set<Stuff>)
}
Run Code Online (Sandbox Code Playgroud)

PS:这是针对Swift 3的.

generics swift swift3

2
推荐指数
1
解决办法
941
查看次数

iOS音频输出仅限耳机插孔

是否可以将音频输出到iOS设备的耳机插孔而不是其他地方?(例如不是扬声器或蓝牙)

我们正在试验一个硬件附加组件,它接收来自音频插孔的音调输入.我们可以尝试检测耳机插孔是否已连接,但是当连接蓝牙音频输出设备时仍然会出现这种情况 - 我们不希望在用户的蓝牙耳机或扬声器中听到音调.

core-audio audiosession ios avaudiosession

1
推荐指数
1
解决办法
1699
查看次数

为Mac OS X说话头库

是否有适用于Mac OS X/Cocoa/Objective-C的"讨论头"库?特别是那些简化将口语文本翻译成视词/面部表情的文章?微软将"Microsoft Agent"作为其Text to Speech API的一部分,Mac是否具备此功能的有力竞争者?

macos cocoa objective-c text-to-speech agent

0
推荐指数
1
解决办法
430
查看次数