目标C - DRDevice.h
问题描述:
我想检查我的“托盘”,看它是否开启或没有,但我不能得到它的工作,它说:目标C - DRDevice.h
"_DRDeviceIsTrayOpenKey", referenced from:
´ -[UntitledAppDelegate applicationDidFinishLaunching:] in UntitledAppDelegate.o
ld: symbol(s) not found
代码是:
#import <Foundation/Foundation.h>
#import <DiscRecording/DRCoreDevice.h>
#import <DiscRecording/DRMSF.h>
#import <AvailabilityMacros.h>
extern NSString* const DRDeviceIsTrayOpenKey;
if (!DRDeviceIsTrayOpenKey == NO) {
[NSApp terminate:nil];
}
信息:
DRDeviceIsTrayOpenKey
extern NSString* const DRDeviceIsTrayOpenKey;
讨论 一个由状态方法返回的字典中的密钥。 NSNumber包含一个布尔值,指示设备的托盘是否打开。
可用性 在Mac OS X 10.2版推出
请帮我解决这个问题,我想我的代码是错误的。
答
是的,你的代码是错误的。该是用于从NSDictionary
检索值的关键。
所以,如果你能得到你的磁盘录制状态,你会做这样的事情:
// this code would depend on you passing in a valid DRDevice object
// which I've named myDiscRecordingDevice. A computer can have multiple
// DVD/CD readers attached, so you need to specify which one you care about
NSDictionary * status = [myDiscRecordingDevice status];
NSString* state = [status objectForKey: DRDeviceMediaStateKey];
if ([state isEqualTo: DRDeviceMediaStateNone])
{
if ([[status objectForKey: DRDeviceIsTrayOpenKey] boolValue])
return trayOpen;
return noDisc;
}
很好的回答。由于OP提到一个未解决的参考,您可能想要提醒他在项目中包含“DiscRecording.framework”。 – dasblinkenlight 2012-01-07 13:44:59
它说:/Users/me/Desktop/Untitled/UntitledAppDelegate.m:27:0 /Users/me/Desktop/Untitled/UntitledAppDelegate.m:27:错误:'myDiscRecordingDevice'未申报(首次在此功能中使用) – user1104856 2012-01-07 13:52:23
您需要在那里修改我的示例代码,以提供一个'DRDevice'对象(如果您的计算机挂接了多个DVD/CD驱动器,则可能有多个)。您也应该修改我的代码以返回YES或NO,具体取决于托盘是打开还是关闭。 – 2012-01-07 13:54:28