小编dav*_*ode的帖子

是否ALAssetsLibrary的enumerateGroupsWithTypes:usingBlock:failureBlock:iOS 4.3.4中的"已损坏"?

我正在开发一个基于ALAssetsLibrary api(自4.0开始提供)的iOS应用程序,我用它来检索设备上保存的所有图像和视频,这样做非常简单.无论如何,一旦我在iPhone 4上安装了iOS 4.3.4,我的代码就停止了工作.调用提取的行什么都不做!代码如下(它在iOS 4.3.3上运行正常):

ALAssetsLibrary *library = [[[ALAssetsLibrary alloc] init] autorelease];

ALAssetsGroupEnumerationResultsBlock assetsEnumerator = ^(ALAsset *result, NSUInteger index, BOOL *stop) { 
// handle asset
    };

ALAssetsLibraryGroupsEnumerationResultsBlock groupsEnumerator = ^(ALAssetsGroup *group, BOOL *stop) { 
// handle group
    };

    ALAssetsLibraryAccessFailureBlock failHandler = ^(NSError *error) {
// handle error
    };


[library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:groupsEnumerator failureBlock:failHandler];
Run Code Online (Sandbox Code Playgroud)

似乎enumerateGroupsWithTypes:usingBlock:failureBlock:永远不会被调用,因为我的块都没有执行...并且没有引发错误!为什么?我能做什么?

ps:我试图改变"类型"参数,但那不是问题!

iphone objective-c ios alasset alassetslibrary

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

Closure模板中的逻辑运算符

我正在玩Google Closure模板 而且我无法成功编译一些模板,因为似乎逻辑" "和" "运算符不能在if标签内使用(我试过" && "和" "和" || "和" ")...如果语句如下,我怎么写"复杂" {if condition1 && condition2}

编辑:

以下简单语句引发异常:

{if 5> 2 && 2 == 2}

"并非所有代码都使用Soy V2语法(找不到标签{if 5> 2 && 2 == 2}不在Soy V2语法中)"

javascript google-closure-templates

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

JSDoc和JavaScript单例文档

我有一个JavaScript单例定义为:

/**
 * A description here
 * @class
 */
com.mydomain.ClassName = (function(){

/**
 * @constructor
 * @lends com.mydomain.ClassName
 */ 
var ClassName = function(){};

/**
 * method description
 * @public
 * @lends com.mydomain.ClassName
*/
ClassName.prototype.method1 = function(){};

return new ClassName();

})();
Run Code Online (Sandbox Code Playgroud)

没有以详细模式(-v)打印警告,但文档仅报告"com.mydomain.ClassName()"以及"此处描述"作为描述...如何为ClassName的方法生成文档?

javascript jsdoc

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

使用SQLAlchemy连接到SQL Server

我正在尝试使用SQLALchemy和pyodbc连接到SQL Server Express数据库,但我不断收到错误:

(pyodbc.Error)('IM002','[IM002] [unixODBC] [驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序(0)(SQLDriverConnect)')

我真的不明白我的引擎网址是错还是其他什么.我的方案如下:

  • 我在Mac上
  • 我有一个docker容器(基于带有和的Debian图像),我的python应用程序尝试连接到...unixodbcunixodbc-dev
  • 一个VirtualBox的虚拟机上运行的Windows 8与SQL Express的2014 ...

我使用SQL Server身份验证为SQL Express配置了一个用户:

  • user:ar_user
  • 密码:ar_psw

...然后:

  • 我将TCP端口配置为1433并禁用动态端口(SQL Server配置管理器>网络配置>协议).
  • 我关闭了Windows防火墙.
  • 我为运行windows8的VM使用了仅限主机的适配器

现在...

可以从主机(我的mac)访问VM,因为:

ping -c 3 vm-ip
Run Code Online (Sandbox Code Playgroud)

成功!

但是,虽然我尝试了用户,密码,IP,服务器名称和端口的所有可能的排列:

  • 'mssql+pyodbc://ar_user:ar_psw@vm-ip/master'
  • 'mssql+pyodbc://ar_user:ar_psw@vm-ip:1433/master'
  • 'mssql+pyodbc://IE10WIN8\\SQLEXPRESS'
  • 'mssql+pyodbc://ar_user:ar_psw@IE10WIN8\\SQLEXPRESS'
  • 'mssql+pyodbc://ar_user:ar_psw@IE10WIN8\\SQLEXPRESS:1433'
  • 'mssql+pyodbc://ar_user:ar_psw@IE10WIN8\\SQLEXPRESS:1433/master'

...还有很多!

我总是得到"数据源未找到错误".我该怎么办?

ps:即使在docker容器中,vm也可以ping通!

更新(已解决但不是100%):

我这样解决了:

我用/etc/odbcinst.ini这种方式配置了FreeTDS驱动程序:

[FreeTDS]
Description = TDS driver (Sybase/MS SQL)
Driver = /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so
Setup = /usr/lib/x86_64-linux-gnu/odbc/libtdsS.so
client charset = UTF-8
Run Code Online (Sandbox Code Playgroud)

并在/etc/freetds/freetds.conf:

[global]
tds version = …
Run Code Online (Sandbox Code Playgroud)

sql-server odbc sqlalchemy unixodbc pyodbc

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

SQLAlchemy列类型比较

我正在对不同数据库类型进行大量数据库自省,并且我希望能够比较两种列类型。例如,Boolean使用将定义为type 的字段declarative_base()转换TINYINTMySQL Dialact 的特定字段,因此进行如下检查:

model_a.__table__.columns['col'].type == model_b.__table__.columns['col'].type
Run Code Online (Sandbox Code Playgroud)

不起作用,并且这一个都不:

(type_a == type_b) or issubclass(type_b, type_a)
Run Code Online (Sandbox Code Playgroud)

如何比较两列数据类型为“亲和力”?(通过检查代码,我看到列类型Comparator附加了一个类,但是我不确定它是否有帮助以及如何使用它)也可以在SQLAlchemy配置中强制使用列类型(避免使用方言-具体转换)?

python sql sqlalchemy

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

Dart/Flutter:在测试套件之间共享通用的 setUp/tearDown 方法

有没有办法在 Dart/Flutter 的测试中共享通用的 setUp/tearDown 方法和其他辅助方法?通常在其他语言/框架中,比如 Java 或 Python,测试是在可以扩展的类中定义的,但是 Dart 通过在 main 方法中使用函数来进行测试的方式让我感到困惑。例如,我正在测试 io 方法,我的测试中有以下代码:

  Directory tempDir;

  setUp(() async {
    tempDir = await Directory.systemTemp.createTemp();

    const MethodChannel('plugins.flutter.io/path_provider').setMockMethodCallHandler((MethodCall methodCall) async {
      if (methodCall.method == 'getApplicationDocumentsDirectory') {
        return tempDir.path;
      }
      return null;
    });
  });

  tearDown(() async {
    tempDir.delete(recursive: true);
  });
Run Code Online (Sandbox Code Playgroud)

如果是任何其他语言,我将创建一个基类或一个名为的 mixin,TempDirTestCase在其中放置用于创建/删除临时目录的代码,那么每个需要此类功能的套件只需从它继承......但是我应该在 dart/flutter 中做什么来重用代码并避免复制/粘贴?

testing unit-testing dart flutter

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

如何在单元格选择/取消选择时正确切换UITableViewCell的accesoryType?

我正在尝试在选择/取消选择表格单元格时切换accesoryType ...行为应该是:点击 - >将accessoryType设置为UITableViewCellAccessoryCheckmark - >再次点击单元格 - >回滚到UITableViewCellAccessoryNone类型.我的控制器中的实现如下:

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{   
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    [cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    [cell setAccessoryType:UITableViewCellAccessoryNone];
}
Run Code Online (Sandbox Code Playgroud)

...无论如何,一旦将样式配置为UITableViewCellAccessoryCheckmark,我就无法将其恢复为UITableViewCellAccessoryNone!我也试过打电话:

[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationNone];
Run Code Online (Sandbox Code Playgroud)

但是没有删除复选标记......我该怎么办?

编辑:实现没问题,问题是在自定义UITableViewCell子类...抱歉:P

uitableview ios

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

使用 RabbitMQ 的 Amazon Elastic Beanstalk 上的 Celery 超时异常

我正在尝试在我的 Beanstalk 环境中使用 Celery(这是完成我项目的技术堆栈的最后一部分:P)。这是我到目前为止所做的:

  • 由于 RabbitMQ 是 Celery 的最佳代理,而 Amazon 不提供专用服务,因此我创建了一个基于 Ubuntu 13 64 位的自定义 AMI
  • 安装RabbitMQ
  • 删除了默认用户来宾/来宾
  • 创建了一个自定义用户
  • 创建了一个自定义虚拟主机
  • 安装的管理插件
  • 使用 http API 测试了我的配置,以确认我的 RabbitMQ 服务器已启动并正在运行。

到现在为止还挺好!然后在我的 beanstalk .config文件中,我为 celery 添加了几个命令:

04_celery_periodic_tasks:
    command: "celery worker --app=com.cygora --loglevel=info --beat --autoreload -n period_tasks_worker.%h"
    leader_only: true
05_celery_standard_worker:
    command: "celery worker --app=com.cygora --loglevel=info --autoreload -n worker_1.%h"
Run Code Online (Sandbox Code Playgroud)

一旦我部署了我的应用程序,我就没有发现任何与 celery 相关的错误(所以我假设这一切都很好,从“Python/Django 方面”)......但是一旦我使用我网站的一个功能需要通过 Celery 向 Rabbit 发送消息,我收到超时异常:

[Thu Feb 20 22:01:24 2014] [error]    File "/opt/python/run/venv/lib/python2.7/site-packages/kombu/transport/pyamqp.py", line 111, in establish_connection
[Thu Feb 20 22:01:24 2014] [error] …
Run Code Online (Sandbox Code Playgroud)

django rabbitmq amazon-web-services celery amazon-elastic-beanstalk

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

Amazon Elastic Beanstalk上的MaxMind GeoIP库和数据库

我正在试图弄清楚如何在AWS上安装和使用GeoIP库(Elastic Beanstalk).据我所知,EB有一个"短暂的文件系统",但我可以在S3中存储CeoCity二进制文件......但是MaxMind C库呢?有没有人配置EB使用MaxMind的API?

(我的堆栈基于Python/Django)

amazon-s3 amazon-web-services geoip maxmind amazon-elastic-beanstalk

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

将git标签部署到Amazon Elastic Beanstalk

我使用Web界面在EB上创建了一个应用程序(我切换到UI方法,因为通过使用CLI utils:eb int+ eb start我无法配置postgres db,因为会自动创建一个mysql并通过在配置中设置“ postgres”文件我遇到了类似“您无法更改dbengine类型”的异常!!)我的问题是当前我无法使用git部署我的应用程序,并且必须使用Web UI创建和上传zip文件(这是我真正讨厌的过程,因为我处于实验性状态并且经常部署)。如果我尝试使用,git push.aws则会得到:

./.git/AWSDevTools/aws/dev_tools.rb:53:in `host': private method `split' called for nil:NilClass (NoMethodError)
    from ./.git/AWSDevTools/aws/dev_tools.rb:112:in `signed_uri'
    from .git/AWSDevTools/aws.elasticbeanstalk.push:86
Run Code Online (Sandbox Code Playgroud)

…在目前情况下,如何使用git将存储库中的标签推送并部署到EB?

git amazon-web-services amazon-elastic-beanstalk

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