小编mkj*_*mkj的帖子

如何以正确的方式创建计时器?

我总是有一个类,只要对象处于活动状态,就需要设置一个计时器.通常是UIView,它做一些动画.

现在的问题是:如果我强烈引用NSTimer我创建并使-dealloc中的计时器失效并释放计时器,则永远不会使计时器失效或释放,因为从未调用-dealloc,因为运行循环保持对目标的强引用.那我该怎么办?如果我不能对计时器对象进行强烈的引用,这也是不好的,因为我可能需要一个引用才能阻止它.对物体的弱反射并不好,因为也许我会在它消失时访问它.所以最好保留我想要保留的东西.

你们是怎么解决这个问题的?superview必须创建计时器吗?那个更好吗?或者我应该真的只是做一个弱的参考,并记住运行循环对我的计时器有一个强大的参考,只要它没有失效?

iphone timer

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

得到一个字符串的一部分

假设我有一个电子邮件地址字符串,"John Smith" <JSmith@gmail.com>我想要的只是获取电子邮件地址<>

我怎么会这样做而没有得到其他一切?

java string

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

PHP preg_replace反斜杠

我的字符串中有双反斜杠'\',需要转换为单反斜杠'\'.我已经尝试了几种组合,当我使用echo或更多的反斜杠被意外地添加到字符串时,整个字符串消失了.这个正则表达式的事情让我变得疯狂......哈哈......

我在其他失败的尝试中试过这个:

$pattern = '[\\]';
$replacement = '/\/';

?>
<td width="100%">&nbsp;<?php echo preg_replace($pattern, $replacement,$q[$i]);?></td>
Run Code Online (Sandbox Code Playgroud)

如果这是一个愚蠢的问题我很抱歉,我很感激任何指针.

php regex

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

为什么BitConverter比直接执行按位操作慢?

我最近对一些代码进行了一些分析,发现调用BitConverter时消耗的CPU占用量最大,如:

return BitConverter.ToInt16(new byte[] { byte1, byte2 });
Run Code Online (Sandbox Code Playgroud)

切换到类似的东西时:

return (short)(byte1 << 8 | byte2);
Run Code Online (Sandbox Code Playgroud)

我注意到性能的巨大提升.

我的问题是为什么使用BitConverter这么慢?我会假设BitConverter本质上是在内部进行相同类型的位移.

c# bit-shift bitconverter

0
推荐指数
2
解决办法
856
查看次数

Yii2中的条件验证

我有一个带有两个值(必填字段)的单选按钮,基于该值显示一个字段(有两个字段是隐式的,它是根据单选按钮的值显示的)应该是必需的.所以我对最初隐藏的字段使用了条件验证.

这是我的型号代码:

public function rules()
    {
        return [
            [['receipt_no', 'date_of_payment', 'payment_method_id', 
              'total_amount'], 'required'],   
            ['nonmember_name', 'required', 'whenClient' => function($model) 
             {
                return $model->is_member == 2;
             }, 'enableClientValidation' => false],
             ['member_id', 'required', 'whenClient' => function($model) 
             {
                return $model->is_member == 1;
             }, 'enableClientValidation' => false],
            [['receipt_no', 'date_of_payment', 'payment_method_id', 
              'total_amount','is_member'], 'required','on' => 'receipt'],
        ];
    }
Run Code Online (Sandbox Code Playgroud)

我用的是一个场景receipt,is_member就是单选按钮字段.如果我选择值1,is_member那么字段member_id是可见的,它应该是必需的.如果is_member值为2则nonmember_name显示,它应该成为必填字段.凭借我在模型中的代码,我设法实现了它.但现在使用此模型的其他操作(将新数据行保存到模型中)存在错误

数组([nonmember_name] =>数组([0] =>名称不能为空.))

所以我的问题是我如何才能对场景进行特定的条件验证(我认为我的错误是由条件验证中定义的必需规则引起的)

编辑:

这是我的单选按钮

<?= $form->field($model, 'is_member')->radioList(array('1'=>'Member',2=>'Non Member'))->label('Member or Not'); ?>
Run Code Online (Sandbox Code Playgroud)

validation yii2 yii2-advanced-app

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

如何删除java android app目录中的所有文件?当前代码正在删除该文件夹

这是我的代码

private final static String Dir = "/data/data/org.xbmc.kodi/cache/";
private void deleteDir(){
    try{
        /*File dir = Utils.getCacheDir(null, this, false, true);
        File path = new File(dir.getParentFile(), Dir);
        delete(path);*/
        String command = "rm -r "+Dir;
        Process process = Runtime.getRuntime().exec("su");
        DataOutputStream os = new DataOutputStream(process.getOutputStream());
        os.writeBytes(command + "\n");
        os.writeBytes("exit\n");
        os.flush();
        process.waitFor();
    }catch(Exception e){}
}
Run Code Online (Sandbox Code Playgroud)

问题是当我运行它时它会删除该文件夹。但我不想删除该文件夹。我想删除里面的所有文件。

java android android-studio

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

ctime随机返回NULL

我正在使用ctime.但是它总是返回NULL.所以它在sprintf线上核心.它工作得更早.所以不确定为什么它会随机返回NULL?

我有以下代码片段:

int main()
{
    char avp_val[50];

    uint32_t date_value=1477069401;

    sprintf(avp_val,"%s",ctime((time_t*)(&date_value)));

    return;
}
Run Code Online (Sandbox Code Playgroud)

c datetime

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

检测到的元音后分裂字符串

我试图把单词分成音节,但是我的语言(Setswana)中的那种音节.在元音之后每次出现音节,例如在"motho"(意思是人)中,音节是"mo"和"tho".它们被元音分开,因此识别元音是一个主要关键

我需要一个代码来识别一个元音并分割一个单词的一部分,1个每个可用的单元...这是我到目前为止所拥有的:

public void syllable(String word)
{
    int i=0;
    int z=0;
    for (i=i;i<word.length()-1; i++){
        char w = word.charAt(i);
        String w1=Character.toString(w);
        if(w=='a'|| w=='e' || w=='i' || w=='o' || w=='u')
        {
            String[] x= word.split(w1,2);

            System.out.println(Arrays.toString(x));
            //z=i;
            continue;
        }
        continue;
    }
}
Run Code Online (Sandbox Code Playgroud)

java string

-1
推荐指数
1
解决办法
1954
查看次数

使用双引号将字符串初始化为在C++中使用泛型算法是否安全?

我正在学习C++ Primer第5版.在页479,它提到了

string sum = accumulate(v.cbegin(), v.cend(), "");因为no + on const char*"" 而不正确

类型v是顺序容器,例如矢量.

我发现使用双引号创建字符串是危险的,特别是对于使用通用算法的情况,因为它需要对象的已定义运算符.

但我无法弄清楚描述的no + on const char*含义是什么?

  1. 它会调用string (const char* s);c-string中定义的构造函数吗?
    我认为这是编译器所做的,因为它解释了用C++中的引号初始化的字符串.

  2. 我们应该用双引号创建一个字符串吗?它会导致overriding on operators失败.

c++ compiler-construction string generics

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