Objective c 目标c-DRH设备

Objective c 目标c-DRH设备,objective-c,xcode,Objective C,Xcode,我试着检查我的“托盘”,看看它是否打开,但我无法让它工作,它说: "_DRDeviceIsTrayOpenKey", referenced from: ´ -[UntitledAppDelegate applicationDidFinishLaunching:] in UntitledAppDelegate.o ld: symbol(s) not found 代码是: #import <Foundation/Foundation.h> #import <Disc

我试着检查我的“托盘”,看看它是否打开,但我无法让它工作,它说:

  "_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];
}
#导入
#进口
#进口
#进口
外部NSString*常量DRDeviceStrayOpenKey;
如果(!DRDeviceStrayOpenKey==否){
[NSApp终止:无];
}
信息:

drDeviceStrayOpenKey

extern NSString*const DRDeviceIsTrayOpenKey

讨论 status方法返回的字典中的一个键。NSNumber,包含一个布尔值,指示设备托盘是否打开

可用性 在Mac OS X v10.2中引入


请帮我解决这个问题,我想我的代码错了。

是的,你的代码错了。
DRDeviceIsTrayOpenKey
是用于从
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”包含到项目中。它说:/Users/me/Desktop/Untitled/UntitledAppDelegate.m:27:0/Users/me/Desktop/Untitled/UntitledAppDelegate.m:27:error:“myDiscRecordingDevice”未声明(首次用于此函数)您需要在上面修改我的示例代码,以提供一个
DRDevice
对象(如果您的计算机连接了多个DVD/CD驱动器,则可以有多个对象)。您还应该修改我的代码以返回是或否,这取决于托盘是否打开或关闭。我有一个DVD/CD驱动器,比方说它名为“Mr_right”,如何将其作为DRDevice对象传递?比如:DRDevice*mydiscrecodingdevice=@[“Mr_right”];你想做的不是小事。您不能直接创建
DRDevice
。操作系统必须将其交给您(通过
DRNotificationCenter
或通过iRegistry路径)。查看苹果网站顶部的“获取设备实例”部分。并寻找有用的示例代码(.Good luck!