问题列表 - 第43952页

在iPhone上使用AsyncSocket和辅助线程

我在iPhone上使用AsyncSocket与服务器通信.AsyncSocket基于运行循环,但我的应用程序基于线程.这意味着,我启动一个新线程来写入数据,并等待直到在同一个线程上收到响应.但我不能直接从另一个线程调用AsyncSocket的方法,我必须使用:

[self performSelectorOnMainThread:@selector(writeSomeData:) withObject:dataToWrite waitUntilDone:YES];
Run Code Online (Sandbox Code Playgroud)

它确实有效,但我无法通过这种方式调用我的方法"writeSomeData:",因为performSelectorOnMainThread不返回任何内容.

方法writeSomeData:做这样的事情:

-(NSData *)writeData:(NSData *)dataToWrite {
    dataReceived = nil; // AsyncSocket writes data to this variable
    [asyncSocket writeData:dataToWrite withTimeout:-1 tag:0];
    [asyncSocket readDataToData:[@"<EOF" dataUsingEncoding:NSUTF8StringEncoding] withTimeout:-1 tag:0];
    int counter = 0;
    while (dataReceived == nil && counter < 5) {
        // runLoop is [NSRunLoop currentRunloop]
        [runLoop runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.3]];
        ++counter;
    }

    return [dataReceived copy];
}
Run Code Online (Sandbox Code Playgroud)

我可以通过访问类变量"dataReceived"获得响应,但此时内容已更改.

任何人都可以告诉我如何在不同的线程上使用AsyncSocket(或者一般来说,如何处理基于运行循环的类),这样如果我调用该类的方法,它会一直阻塞,直到执行该方法并收到响应?

谢谢.

iphone cocoa-touch asyncsocket nsthread nsrunloop

5
推荐指数
1
解决办法
1326
查看次数

用于域类的Grails自定义验证器

我有一个限制,所以只能 ConfigurationHolder.config.support.reminder.web.person.max存储对象.我没有找到如何添加与特定属性无关的验证器.所以现在我以这种方式实现它.你们有什么想法让它变得更好吗?

package support.reminder.web

import org.codehaus.groovy.grails.commons.ConfigurationHolder;

class Person {

    String firstName
    String lastName
    String email
    Date lastDutyDate

    static constraints = {
        firstName(blank: false)
        lastName(blank: false)
        email(blank: false, email: true)
        lastDutyDate(nullable: true)
        id validator: {val ->
        if (val)
            Person.count() <= ConfigurationHolder.config.support.reminder.web.person.max
        else
            Person.count() < ConfigurationHolder.config.support.reminder.web.person.max
    }
    }

    String toString() {
        "[$firstName $lastName, $email, $lastDutyDate]"
    }
}
Run Code Online (Sandbox Code Playgroud)

grails grails-validation grails-domain-class

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

如何从imap只下载新的电子邮件?

我有一个用于使用imap存档电子邮件的应用程序.此应用程序中还有许多需要存档的imap帐户.

在这个时刻,应用程序不时连接到imap帐户并只下载新的电子邮件.我的问题是,每次连接到imap帐户时,它都会验证来自所有文件夹的所有电子邮件,并仅下载尚未下载的电子邮件(我存储所有电子邮件的Message-ID,并仅下载具有Message-ID的电子邮件)没有存储).所以我想知道是否有替代方案,因为验证所有电子邮件需要一些时间(10-20K需要2-5分钟).

我使用JavaMail API连接到imap帐户.

java imap jakarta-mail

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

javax.mail - 问题解码主题

我正在解决使用以下主题解码邮件的问题:

主题:=?ISO-8859-1?Q?Re:Re:Re:Fwd:(GI?= =?ISO-8859-1?Q?Support-Id:11729)?=

javamail将其解码为:

=?ISO-8859-1?Q?Re:Re:Re:Fwd:(GI?= Support-Id:11729)

这是一个有效的主题吗?或者javamail能够读取这个吗?

问候

java jakarta-mail character-encoding

6
推荐指数
1
解决办法
4111
查看次数

重用代码 - Java

有没有办法在这些函数中重用迭代数组代码:

public static double[] ln(double[] z) {
    // returns  an array that consists of the natural logarithm of the values in array z
    int count = 0;

    for (double i : z){
        z[count] = Math.log(i);
        count += 1;
    }
    return z;
}


public static double[] inverse(double[] z) {
    //  returns  an array that consists of the inverse of the values in array z
    int count = 0;

    for (double i : z){
        z[count] = Math.pow(i,-1);
        count += 1;
    }
    return …
Run Code Online (Sandbox Code Playgroud)

java code-reuse function operator-overloading

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

在Windows上有复制文件夹的界面吗?

我想复制文件夹A并粘贴到桌面.

我目前正在使用C++,因此最好是OO接口(如果可用).

c c++ windows

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

Html代码格式正确与一行代码

我看到越来越多的页面(例如translate.google)将html代码格式化为一行?是否缩短了加载时间?现在是最先进的吗?

谢谢

html web

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

Hibernate非负值约束

我有桌子,下面的片段.

    package test;

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.Table;
    import javax.persistence.UniqueConstraint;

    @Entity
    @Table(uniqueConstraints = { @UniqueConstraint(columnNames = "code")},
           name = "coupons")
    public class Coupon implements  Serializable {

        private static final long serialVersionUID = 5534534530153298987L;

        @Id
        @GeneratedValue
        @Column(name = "id")
        private long id;

        @Column(name = "available_count")
        private Integer availableCount = 1;

        public Integer getAvailableCount() {
            return availableCount;
        }

        public void setAvailableCount(Integer availableCount) {
            this.availableCount = availableCount;
        }
    }
Run Code Online (Sandbox Code Playgroud)

如何制约只允许availableCount非负面?

java database hibernate check-constraints

4
推荐指数
1
解决办法
4387
查看次数

如何使用可见属性隐藏div,即使它有背景

我有以下div:

<div visible="false" 
     style="background-image:url('../Contents/Images/item-background-selected.png'); width:113px; height:58px; background-repeat: no-repeat; position: absolute;"  />
<div>
Run Code Online (Sandbox Code Playgroud)

尽管visible财产设置为,它仍然可见false.但当我background-image从风格中删除它时,它是隐藏的.

如何保持背景隐藏它?

提前致谢.

html asp.net visible

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

在变量名之前,在rails中意味着什么?

例如,:符号 - 我试图弄清楚它的:意义和方式,例如,@从任何符号,也从无符号.

如果有一个非常有用的指南!

ruby symbols

5
推荐指数
1
解决办法
5336
查看次数