小编mic*_*elk的帖子

为类成员使用智能指针

我无法理解智能指针在C++ 11中作为类成员的用法.我已经阅读了很多关于智能指针的内容,我想我确实理解了如何unique_ptrshared_ptr/ weak_ptr一般的工作.我不明白的是真正的用法.似乎每个人都建议使用unique_ptr几乎所有的时间.但是,我将如何实现这样的事情:

class Device {
};

class Settings {
    Device *device;
public:
    Settings(Device *device) {
        this->device = device;
    }

    Device *getDevice() {
        return device;
    }
};    

int main() {
    Device *device = new Device();
    Settings settings(device);
    // ...
    Device *myDevice = settings.getDevice();
    // do something with myDevice...
}
Run Code Online (Sandbox Code Playgroud)

假设我想用智能指针替换指针.A unique_ptr不会起作用getDevice(),对吧?那是我使用的时间shared_ptrweak_ptr?没办法用unique_ptr?对我来说似乎对大多数情况shared_ptr更有意义,除非我在一个非常小的范围内使用指针?

class Device {
};

class Settings {
    std::shared_ptr<Device> device;
public:
    Settings(std::shared_ptr<Device> …
Run Code Online (Sandbox Code Playgroud)

c++ smart-pointers shared-ptr unique-ptr c++11

146
推荐指数
1
解决办法
8万
查看次数

XCode:显示一种语言的所有本地化文件(IOS项目)

我一直在搜索XCode和Google,但我无法找到如何做到这一点:

我正在使用Base本地化,它显示4个本地化为英语的文件.我不知道为什么它是4,我想找出原因. 但是怎么样?如何获取所有本地化文件的列表(以及这些文件所在的位置)?

这是一项非常罕见的任务,我找不到任何答案吗?或者这是显而易见的,我只是无法找到它?

我意识到当我尝试添加另一种语言(如Japanase)时,我会看到有4x InfoPlist.strings文件用于英文,1x文件用于Base Localization(Storyboard),但我仍然不知道为什么以及在哪里这些文件以及如何删除它们.

检查en.lproj文件夹,只有1个InfoPlist.strings文件.为什么XCode告诉我我有4个?

iphone xcode localization objective-c ios

7
推荐指数
1
解决办法
3976
查看次数