基本上,标题是不言自明的.我用以下方式使用它:
std::mutex到lock和unlock std::vector<T>跨越整个班级的编辑选项,如C++的std容器不是线程安全的.很长一段时间我收到一个奇怪的错误,但只有在设备上运行时才会收到.在模拟器中一切都很好.我所做的是将示例文件从app bundle目录移动到设备上的Documents目录.我已经为NSFileManager尝试了所有这些方法:
- (BOOL)copyItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error
- (BOOL)moveItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error
- (BOOL)linkItemAtPath:(NSString *)srcPath toPath:(NSString *)dstPath error:(NSError **)error
Run Code Online (Sandbox Code Playgroud)
每个人都会抛出如下错误:
2015-08-15 23:14:15.152 app [1010:339938]错误:错误域= NSCocoaErrorDomain代码= 513""file.txt"无法链接,因为您无权访问"文档"." UserInfo = {NSSourceFilePathErrorKey =/var/mobile/Containers/Bundle/Application/verylongid/fastdict.app/Dictionaries/file.txt,NSUserStringVariant =(Link),NSDestinationFilePath =/var/mobile/Containers/Data/Application/verylongid/Documents /file.txt,NSFilePath =/var/mobile/Containers/Bundle/Application/verylongid/fastdict.app/Dictionaries/file.txt,NSUnderlyingError = 0x13666d5a0 {Error Domain = NSPOSIXErrorDomain Code = 1"不允许操作"}} - [AppDelegate fillDirectoryWithSamplesIfEmpty]
我怎么解决这个问题?
更新:这里找到的解决方案确实有效!祝好运!
我想破坏一个类的对象B.
class A {
public:
A() {
std::cout << "construct A" << av::endl;
a = new int;
}
virtual ~A() {
std::cout << "destruct A" << av::endl;
this->clear();
}
virtual void clear() {
std::cout << "clear A" << av::endl;
delete a;
}
protected:
int *a;
};
class B : public A {
public:
B() {
std::cout << "construct B" << av::endl;
b = new int;
}
~B() {
std::cout << "destruct B" << av::endl;
}
void clear() override …Run Code Online (Sandbox Code Playgroud)