小编Jos*_*ice的帖子

Objective C类别的实例变量

我有一种情况,似乎我需要将实例变量添加到一个类别,但我从Apple的文档中知道我不能这样做.所以我想知道最好的选择或解决方法是什么.

我想要做的是添加一个为UIViewControllers添加功能的类别.我会发现它在我所有不同的UIViewControllers中都很有用,无论它们扩展了什么特定的UIViewController子类,所以我认为一个类别是最好的解决方案.为了实现这个功能,我需要几种不同的方法,我需要跟踪它们之间的数据,这就是我想要创建实例方法的原因.

如果它有用,这就是我特别想做的事情.我希望能够更容易地跟踪软件键盘何时隐藏和显示,以便我可以在视图中调整内容的大小.我发现可靠的唯一方法是将代码放在四个不同的UIViewController方法中,并跟踪实例变量中的额外数据.所以那些方法和实例变量是我想要放入一个类别的,所以每次我需要处理软件键盘时都不需要复制它们.(如果对于这个确切的问题有一个更简单的解决方案,那也没关系 - 但我仍然想知道类别实例变量的答案以供将来参考!)

oop cocoa objective-c categories

32
推荐指数
5
解决办法
3万
查看次数

在 Ubuntu 18 上启动 Android 模拟器时出错

我正在尝试在 Jenkins CI 上启动 Android 模拟器,但启动从未完成。在 CI 上,该命令在基于ubuntu:18.04. 我正在使用以下命令启动模拟器:

/opt/android-sdk-linux/emulator/emulator -no-audio -no-window -delay-adb \
    @Pixel_C_API_25 &
Run Code Online (Sandbox Code Playgroud)

然后我等待模拟器完成:

adb wait-for-device
Run Code Online (Sandbox Code Playgroud)

在我的开发人员机器(macOS 10.14.6)上,模拟器完成启动并adb wait-for-device返回,但在 CI 上,模拟器永远不会完成启动。日志输出的相关部分在这里:

Starting emulator
Waiting for emulator
* daemon not running; starting now at tcp:5037
statvfs('/home/ec2-user/.android/avd/Pixel_C_API_25.avd/snapshots/default_boot/ram.img') failed: No such file or directory
### WARNING: could not find /usr/share/zoneinfo/ directory. unable to determine host timezone
emulator: WARNING: encryption is off
Your emulator is out of date, please update by launching Android Studio:
 - Start Android …
Run Code Online (Sandbox Code Playgroud)

ubuntu android docker

10
推荐指数
0
解决办法
1594
查看次数

运行个别排毒测试

运行detox test将运行套件中的所有测试。有没有一种方法可以运行部分测试?单个测试文件或单个测试用例。

根据文档,我已经将Detox配置为使用Mocha作为测试运行程序。我知道Mocha可以-g选择为运行的测试指定模式。但是传递给detox命令的选项似乎没有传递给mocha

# detox test -g mytestcase

error: unknown option `-g'
Run Code Online (Sandbox Code Playgroud)

我正在尝试将排毒用于TDD,并且我得到的反馈越快越好。随着我的测试套件的增长,如果我开发的时间越来越长,那么运行测试的动机就会越来越少。

detox

6
推荐指数
2
解决办法
1529
查看次数

标签 统计

android ×1

categories ×1

cocoa ×1

detox ×1

docker ×1

objective-c ×1

oop ×1

ubuntu ×1