我在Lion和NSNotification中心使用Python 2.7和pyobjc来监控任何插入的USB卷.这很好用.
我也有一些想法如何获取设备的序列号,但这些只涉及解析所有USB设备.我想专门查询插入的设备(创建通知的设备),而不是检查整个USB设备列表.
如何实现这一目标?NSNotification传递给我的处理函数的对象没有那种信息,我无法通过NSNotification对象提供的信息找到有关上述操作的任何信息.
我已经尝试过DBus(就像我在Linux上做的那样),但我没有太多运气让它在OSX上可靠地运行.
考虑以下:
for (it = list.begin(); it != list.end(); ++it) {
if (!(*it)->alive) {
it = list.erase(it);
}
}
Run Code Online (Sandbox Code Playgroud)
这个工作正常list.size() > 1.一旦列表只包含一个元素,则调用erase segfaults.我假设因为没有下一个元素.至少,这是我观察到的行为.有没有正确的方法来处理这个?也许是完全不同的方法?
如您所见,我不想立即清除列表.我想在它们死亡时删除元素,这样可以正常工作,直到它删除最后一个元素.