小编Chr*_*sCM的帖子

静态类与单身人士

所以,非常简单的问题.忽略过度使用单身模式的含义.我想在Objective-C中找到一个可靠的单例模式.我遇到过这个:

@implementation SomeSingleTonClass

static SomeSingleTonClass* singleInstance;

+ (SomeSingleTonClass*)getInstance
{
    static dispatch_once_t dispatchOnceToken;

    dispatch_once(&dispatchOnceToken, ^{
        singleInstance = [[SomeSingleTonClass alloc] init];
    });

    return singleInstance;
}

- (void)someMethodOnTheInstance
{
    NSLog(@"DO SOMET WORK")
}

@end
Run Code Online (Sandbox Code Playgroud)

我很满意,但它导致了很多这样的事情:

[[SomeSingleTonClass getInstance] someMethodOnTheInstance];
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么这比纯粹的静态类更好.

@implementation SomeStaticClass

static NSString* someStaticStateVariable;

- (id)init
{
    //Don't allow init to initialize any memory state
    //Perhaps throw an exception to let some other programmer know
    //not to do this
    return nil;
}

+ (void)someStaticMethod
{
    NSLog(@"Do Some Work");
}
Run Code Online (Sandbox Code Playgroud)

所有你真正获得的,是方便的方法调用.基本上你换掉了这个:

[[SomeSingleTonClass getInstance] someMethodOnTheInstance]; …
Run Code Online (Sandbox Code Playgroud)

macos cocoa objective-c ios

22
推荐指数
2
解决办法
8683
查看次数

Jenkins GitHub Pull Request Builder - 状态消息

我已经设置Jenkins使用GitHub拉取请求构建器.它工作得很棒!除了一件小事.我的测试套件创建HTML报告(我使用HTML结果海报插件精美地发布了)但我似乎无法更改发布到GitHub的状态消息.我的提交都标记为:

成功测试运行状态的图像,状态消息为Build finished. 未找到测试结果.

提交的状态会正确更新,但消息部分始终显示"已完成构建.未找到测试结果".

我似乎无法弄清楚如何根据测试套件的状态更改此消息.所以,基本上我得到的唯一反馈是我的shell脚本的退出状态.此脚本执行所有构建,测试和处理结果等.如果通过,这是合理可接受的,但如果发生故障,此消息可能会更有帮助!即使只是知道它是否是构建失败而不是测试套件失败也会很好,所以我可以充分地口头上滥用提出拉取请求的人:).

其他一切都工作得很好,我无法弄清楚看起来像是一个微不足道的变化让我疯狂!有任何想法吗?

github github-api jenkins jenkins-plugins

10
推荐指数
1
解决办法
2482
查看次数

矢量与阵列性能

在另一个主题中,我开始讨论向量和数组,其中我主要是扮演魔鬼的拥护者,按下按钮.然而,在此过程中,我无意中发现了有我有些纳闷的测试情况下,我想有一个关于它的真正的讨论,在"滥用"我得到了打魔鬼代言人,开始真正的现在不可能讨论这个问题.然而,这个具体的例子让我很感兴趣,我无法令人满意地向自己解释.

讨论是关于Vector vs Arrays的一般性能,忽略了动态元素.例如:显然在向量中不断使用push_back()会降低它的速度.我们假设向量和数组预先填充了数据.我提出的示例,随后由线程中的个人修改,如下所示:

#include <iostream>
#include <vector>
#include <type_traits>
using namespace std;

const int ARRAY_SIZE = 500000000;

// http://stackoverflow.com/a/15975738/500104
template <class T>
class no_init_allocator
{
public:
    typedef T value_type;

    no_init_allocator() noexcept {}
    template <class U>
        no_init_allocator(const no_init_allocator<U>&) noexcept {}
    T* allocate(std::size_t n)
        {return static_cast<T*>(::operator new(n * sizeof(T)));}
    void deallocate(T* p, std::size_t) noexcept
        {::operator delete(static_cast<void*>(p));}
    template <class U>
        void construct(U*) noexcept
        {
            // libstdc++ doesn't know 'is_trivially_default_constructible', still has the old names
            static_assert(is_trivially_default_constructible<U>::value,
            "This allocator can only be used with …
Run Code Online (Sandbox Code Playgroud)

c++ benchmarking

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

使用AccessibilityService在屏幕上执行滑动

我想使用辅助功能在屏幕上执行滑动。我试过了,但这只能执行一次操作。我知道这是可能的,因为在设备上启用我的服务时,它说该服务可以执行划动,触摸,捏等操作。

Point position=new Point(100,10);
GestureDescription.Builder builder = new GestureDescription.Builder();
Path p = new Path();
p.moveTo(position.x, position.y);
builder.addStroke(new GestureDescription.StrokeDescription(p, 100L, 50L));
GestureDescription gesture = builder.build();
boolean isDispatched =    dispatchGesture(gesture,gestureResultCallback,null);
Run Code Online (Sandbox Code Playgroud)

android accessibilityservice

5
推荐指数
2
解决办法
4481
查看次数

VoiceOver宣布按钮变暗而不是禁用

iOS 8.x VoiceOver为已禁用的按钮宣布调暗而不是禁用.有没有办法以编程方式让VoiceOver说"禁用"而不是"暗淡"?

mobile accessibility ios voiceover ios8

3
推荐指数
1
解决办法
3540
查看次数

Android onAccessibilityEvent获取TextView的X和Y位置

我试图通过Accessibility服务在我的屏幕上获取TextView的X和Y位置来查找TextView,这可能吗?我发现的一切都需要您先触摸屏幕.以下是我获取节点信息的方法.

public class MyAccessibilityService extends AccessibilityService {

    @TargetApi(16)
    @Override
    public void onAccessibilityEvent(AccessibilityEvent event) {
        AccessibilityNodeInfo source = event.getSource();
    }
}
Run Code Online (Sandbox Code Playgroud)

android accessibilityservice

3
推荐指数
1
解决办法
1392
查看次数