小编Imr*_*med的帖子

以编程方式更改UILongPressGestureRecognizer的状态

我在寻找一种方式来强行改变的状态UILongPressGestureRecognizerUIGestureRecognizerStateEnded创建自己的"最大持续时间"拓UILongPressGestureRecognizer(基本上是创造一种触摸和保持时间最长的功能).

以下是我对此的尝试:

- (void)handleLongPressGestures:(UILongPressGestureRecognizer *)sender
{
        if (sender.state == UIGestureRecognizerStateBegan)
        {
            NSLog(@"Hold Gesture Started");
            timer = [NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(timesup:) userInfo:nil repeats:NO];
            //perform a function - i.e. start something
        }
        else if(sender.state == UIGestureRecognizerStateEnded)
        {
            NSLog(@"Hold Gesture Complete");
            [timer invalidate];
            timer = nil;
            //perform a function - i.e. stop something             
        }
}
-(void)timesup:(NSTimer *)timer {
    NSLog(@"Timer Up!");
    [longpress setState:UIGestureRecognizerStateEnded];
}
Run Code Online (Sandbox Code Playgroud)

问题是[longpress setState:UIGestureRecognizerStateEnded];虽然在xcode中推荐,但仍然会抛出此错误:

No visible @interface for 'UILongPressGestureRecognizer' declares the selector 'setState:'

关于如何解决这个/绕过这个问题的任何想法?我尝试在SO上寻找解决方案,但我没有找到任何东西.话虽如此,如果这个问题与已经回答的问题重复,我会道歉 …

selector uigesturerecognizer ios

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

PHP中的相同字符串不匹配

我正在尝试比较两个字符串(一个来自我的数据库,另一个来自用户提供)并查看它们是否匹配!我遇到的问题是,他们似乎并不匹配-尽管弦似乎恰好相同?

我的PHP代码如下:

public function Verify($pdo, $id, $token) {
    $prepsql = $pdo->prepare("SELECT * FROM Profiles WHERE id = '$id' LIMIT 1");
    $prepsql->execute();
    $currentrow = $prepsql->fetch();
    $current = preg_replace("/[^a-zA-Z0-9]+/", "", $currentrow["token"]);
    echo '<p>'.var_dump($current).'</p>';
    echo '<p>'.var_dump($token).'</p>';
    $token = preg_replace("/[^a-zA-Z0-9]+/", "", $token);
    if ($current == null || $current = "") {
        return false;
    } else {
        if (strcmp($token, $current) == 0) {
            return true;
        } else {
            return false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是网页输出:

  string(244) "CAAW4HRuZBuB4BACA7GffOAwLHgmLgMMLGQxDAw8IJDCwahZAh0S4wZAcP8Q9DmMwsDpBq7jFcH1EzUIsZBbhKov12utoYFQns0HhgB5xKLeDqtZBRqavaNjNSn7KAcObZAEcavQCRbGlVKZBArfDEHskBSR8qAoU543DVTZCOyHm5oYNDVafwHl0bAkc4jyIhh2YHEPaNpWGC0FhezsSidOgLjnfFq8CeLVxHH0nUZBMLgAZDZD"
<p></p>string(244) "CAAW4HRuZBuB4BACA7GffOAwLHgmLgMMLGQxDAw8IJDCwahZAh0S4wZAcP8Q9DmMwsDpBq7jFcH1EzUIsZBbhKov12utoYFQns0HhgB5xKLeDqtZBRqavaNjNSn7KAcObZAEcavQCRbGlVKZBArfDEHskBSR8qAoU543DVTZCOyHm5oYNDVafwHl0bAkc4jyIhh2YHEPaNpWGC0FhezsSidOgLjnfFq8CeLVxHH0nUZBMLgAZDZD"
<p></p><p>Not authenticated</p>
Run Code Online (Sandbox Code Playgroud)

未经过身份验证只是意味着此函数返回false ...

我究竟做错了什么?根据其他类似Stack …

php regex string string-comparison

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

列出<T>意外清除For循环

这个错误困扰了我!本质上,代码接收一个名为"Parking"的对象列表.我想将Parking类似的对象分组Title.为此,我考虑在列表中创建一个列表 - 这TerminalCollection是一个Parking对象列表和一个名称供参考.

为了帮助我,我创建了一个新的 - 临时terminal对象,它是一个Parking对象列表.每当我Parking在同一类别中找到一个对象时,我会将它添加到临时terminal对象,直到找到一个不适合的对象.发生这种情况时,我将terminal列表与名称组合以创建TerminalCollection对象.然后我通过将下一批类似的Parking对象添加到终端来重新开始该过程.

我发现的问题是,当我想terminal在创建TerminalCollection包含此列表副本的对象后清除列表时,列表也会从TerminalCollection对象中清除!! 我不知道为什么,因为我以为我正在创建一个新列表并为其分配一份副本terminal?为什么新列表与原始列表共享相同的内存terminal?有没有我误解的基本概念?非常感谢您提供任何帮助和建议来解决这个问题!:)

private static List<TerminalCollection> Terminals(List<Parking> input)
    {
        List<TerminalCollection> Terminals = new List<TerminalCollection>();
        List<Parking> terminal = new List<Parking>();
        int current = 0;
        int currentpos = 0;
        string currentname = "";
        bool clearbuffer = false;
        foreach (Parking attempt in input)
        {
            if (clearbuffer) …
Run Code Online (Sandbox Code Playgroud)

c# foreach class list

0
推荐指数
1
解决办法
84
查看次数