【问题标题】:Exception updating iTunes track using Scripting Bridge使用 Scripting Bridge 更新 iTunes 曲目时出现异常
【发布时间】:2016-11-02 02:13:37
【问题描述】:

我正在编写一个 Mac 应用程序来使用 iTunes 脚本桥来更新我的 iTunes 库中的一些元数据,但是当我尝试将更改写入数据时却遇到了困难。

我在 Objective C 中创建了一个简单的测试应用程序,通过用一些静态文本覆盖当前曲目的评论字段来演示该问题。

我的代码是:

iTunesApplication *myiTunesApp = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];

myiTunesApp.currentTrack.comment = @"Overwriting track comment";

BOOL success = myiTunesApp.currentTrack.commitEditing;

确实成功写入了新评论,但抛出以下异常:

2016-11-01 21:46:55.307 iTunesScriptingBridgeExample[11117:1091018] -[ITunesTrack commitEditing]: unrecognized selector sent to instance 0x60800004b040
2016-11-01 21:46:55.308 iTunesScriptingBridgeExample[11117:1091018] -[ITunesTrack commitEditing]: unrecognized selector sent to instance 0x60800004b040
2016-11-01 21:46:55.310 iTunesScriptingBridgeExample[11117:1091018] (
    0   CoreFoundation                      0x00007fff9a8ca4f2 __exceptionPreprocess + 178
    1   libobjc.A.dylib                     0x00007fff8f6e2f7e objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff9a9341ad -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3   CoreFoundation                      0x00007fff9a83a571 ___forwarding___ + 1009
    4   CoreFoundation                      0x00007fff9a83a0f8 _CF_forwarding_prep_0 + 120
    5   iTunesScriptingBridgeExample        0x00000001000012a5 -[ViewController btnClicked:] + 197
    6   libsystem_trace.dylib               0x00007fff89e9c07a _os_activity_initiate + 75
    7   AppKit                              0x00007fff8a9a2dbd -[NSApplication sendAction:to:from:] + 460
    8   AppKit                              0x00007fff8a9b4f12 -[NSControl sendAction:to:] + 86
    9   AppKit                              0x00007fff8a9b4e3c __26-[NSCell _sendActionFrom:]_block_invoke + 131
    10  libsystem_trace.dylib               0x00007fff89e9c07a _os_activity_initiate + 75
    11  AppKit                              0x00007fff8a9b4d99 -[NSCell _sendActionFrom:] + 144
    12  libsystem_trace.dylib               0x00007fff89e9c07a _os_activity_initiate + 75
    13  AppKit                              0x00007fff8a9b33be -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 2693
    14  AppKit                              0x00007fff8a9fbf04 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 744
    15  AppKit                              0x00007fff8a9b1ae8 -[NSControl mouseDown:] + 669
    16  AppKit                              0x00007fff8af063c9 -[NSWindow _handleMouseDownEvent:isDelayedEvent:] + 6322
    17  AppKit                              0x00007fff8af073ad -[NSWindow _reallySendEvent:isDelayedEvent:] + 212
    18  AppKit                              0x00007fff8a946539 -[NSWindow sendEvent:] + 517
    19  AppKit                              0x00007fff8a8c6a38 -[NSApplication sendEvent:] + 2540
    20  AppKit                              0x00007fff8a72ddf2 -[NSApplication run] + 796
    21  AppKit                              0x00007fff8a6f7368 NSApplicationMain + 1176
    22  iTunesScriptingBridgeExample        0x0000000100001322 main + 34
    23  libdyld.dylib                       0x00007fff8e6595ad start + 1
    24  ???                                 0x0000000000000003 0x0 + 3
)

谁能建议我在这里做错了什么?

亲切的问候:)

【问题讨论】:

    标签: objective-c macos itunes


    【解决方案1】:

    ITunesTrack 没有commitEditing 的属性或实现。

    commitEditingNSEditor 协议的一部分。

    NSEditor 非正式协议由控制器和用户界面元素实现。它提供了一种请求接收方提交或丢弃任何待处理的编辑的方法。

    这些方法通常由控制器在用户界面元素上调用。它们也可以发送到控制器以响应用户保存文档或退出应用程序的尝试。

    NSController 提供此协议的实现,支持绑定的应用程序工具包用户界面元素也是如此。

    【讨论】:

      猜你喜欢
      • 2011-04-05
      • 2012-10-09
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      相关资源
      最近更新 更多