小编이민규*_*이민규的帖子

使用 [NSEvent mouseLocation] 的位置错误

我为 Mac 制作了一个 iPhone 远程鼠标控制器应用程序:iPhone 应用程序将坐标值发送到 Mac,然后 Mac 处理鼠标位置值。

为了获取 Mac 上的当前鼠标位置,接收者调用 [NSEvent mouseLocation]。

x 的值始终正确,但 y 的值错误。

我使用了“while”循环来处理这个事件。

while (1) {
    mouseLoc = [NSEvent mouseLocation];

    while ((msgLength = recv(clientSocket, buffer, sizeof(buffer), 0)) != 0) {
          CGPoint temp;
          temp.x = mouseLoc.x;
          temp.y = mouseLoc.y; // wrong value
          ........
Run Code Online (Sandbox Code Playgroud)

每个循环周期的y值不同。例如,第一次循环时y值为400,下一次循环时y值为500;然后 y 在下一个循环中再次变为 400。

鼠标指针不断地上下移动,两个不同的y值之和始终为900。(我认为是因为屏幕分辨率是1440 * 900。)

我不知道为什么会发生这种情况,该怎么办以及如何调试。

macos cocoa objective-c nsevent ios

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

spring-data-redis redisTemplate Exception

当我调用get()方法时,发生了异常

这是代码

@Service("RedisService")
public class RedisServiceImpl implements RedisService {

@Autowired
RedisTemplate<String, Long> redisTemplate;

@Override
public Long get(String key) {
    return redisTemplate.opsForValue().get(key);
}

@Override
public Long incrBy(String key, long increment) {
    return redisTemplate.opsForValue().increment(key, increment);
}
Run Code Online (Sandbox Code Playgroud)

当我使用incrBy方法时,没有例外但只有错误只有get方法





在这里才是栈跟踪---

java.io.EOFException
    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:779)
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
    at org.springframework.core.serializer.DefaultDeserializer.deserialize(DefaultDeserializer.java:38)
    at org.springframework.core.serializer.support.DeserializingConverter.convert(DeserializingConverter.java:58)
    at org.springframework.core.serializer.support.DeserializingConverter.convert(DeserializingConverter.java:1)
    at org.springframework.data.redis.serializer.JdkSerializationRedisSerializer.deserialize(JdkSerializationRedisSerializer.java:40)
    at org.springframework.data.redis.core.AbstractOperations.deserializeValue(AbstractOperations.java:198)
    at org.springframework.data.redis.core.AbstractOperations$ValueDeserializingRedisCallback.doInRedis(AbstractOperations.java:50)
    at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:162)
    at org.springframework.data.redis.core.RedisTemplate.execute(RedisTemplate.java:133)
    at org.springframework.data.redis.core.AbstractOperations.execute(AbstractOperations.java:84)
    at org.springframework.data.redis.core.DefaultValueOperations.get(DefaultValueOperations.java:42)
    at net.daum.air21.bot.common.service.RedisServiceImpl.get(RedisServiceImpl.java:29)
    at net.daum.air21.bot.user.service.SeraCoffeeServiceImpl.getCurrentCount(SeraCoffeeServiceImpl.java:41)
Run Code Online (Sandbox Code Playgroud)

spring redis jedis spring-data-redis

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

@EnableTransactionManager java配置

未设置@EnableTransactionManager时,没有错误.

但是当设置@EnableTransactionManager时,会发生初始化错误.

这是catalina.outlog和我的java配置文件:

@Configuration
@MapperScan("net.myproject.db")
@EnableTransactionManagement
public class AppConfig {

    @Value("${statdb.driverClassName}")
    private String statdbDriverClassName;

    @Value("${statdb.url}")
    private String statdbUrl;

    @Value("${statdb.id}")
    private String statdbId;

    @Value("${statdb.pw}")
    private String statdbPw;

    @Value("${statdb.validationQuery}")
    private String statdbValidationQuery;

    @Bean
    public DataSource dataSourceStatdb() {
        BasicDataSource dataSource = new BasicDataSource();
        dataSource.setDriverClassName(statdbDriverClassName);
        dataSource.setUrl(statdbUrl);
        dataSource.setUsername(statdbId);
        dataSource.setPassword(statdbPw);
        dataSource.setValidationQuery(statdbValidationQuery);
        return dataSource;
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        return new DataSourceTransactionManager(dataSourceStatdb());
    }

    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
        sessionFactory.setDataSource(dataSourceStatdb());
        sessionFactory.setMapperLocations( new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/query/*.xml"));
        return sessionFactory.getObject();
    }

    @Bean
    public …
Run Code Online (Sandbox Code Playgroud)

spring transactions

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