小编law*_*cko的帖子

在Xcode 7.1中的UI测试中访问应用程序模块时出现链接器错误

我正在尝试在我的项目中实现一些UI测试.只要我保持简单,一切都很顺利:记录测试用例,添加一些断言,然后运行测试.这很好,但是当我尝试从我的测试中访问应用程序模块时,链接器会抛出一个错误(见下文):

在应用程序源文件中:

func foo() {
   assert(true)
}
Run Code Online (Sandbox Code Playgroud)

在UI测试中:

import XCTest
@testable import MyApp

func testExample() {
    foo()
}
Run Code Online (Sandbox Code Playgroud)

错误:

体系结构i386的未定义符号:"MyApp.foo() - >()",引用自MyAppUITests.o中的MyAppUITests.MyAppUITests.testExample(MyAppUITests.MyAppUITests)() - >()ld:未找到符号体系结构i386 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

架构x86_64的未定义符号:"MyApp.foo() - >()",引用自:MyAppUITests.o中的MyAppUITests.MyAppUITests.testExample(MyAppUITests.MyAppUITests)() - >()ld:找不到符号架构x86_64

我在这里报告了类似的问题:https: //forums.developer.apple.com/thread/20609 但没有解决方案.对我来说似乎@testable根本无法正常工作.developer.apple.com上的那个人试图通过在设置中添加Test Host和Bundle Loader来解决这个问题,但我不认为这是正确的方法.我认为@testable应该让一切都运转起来,而且现在看起来并不像.任何帮助赞赏!

xcode linker ios xcode-ui-testing xcode7.1

24
推荐指数
2
解决办法
4947
查看次数

从SQLAlchemy中的表中选择特定列

我正在尝试从表中选择特定的列,如下所示:

users = Table('users', metadata, autoload=True)
s = users.select([users.c.email])
results = s.execute()
print results
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

> Traceback (most recent call last):   File "my_mailer.py", line 35, in
> <module>
>     s = users.select([users.c.email])   File "/task/__pips__/sqlalchemy/sql/selectable.py", line 175, in select
>     return Select([self], whereclause, **params)   File "/task/__pips__/sqlalchemy/sql/selectable.py", line 2082, in __init__
>     self._whereclause = _literal_as_text(whereclause)   File "/task/__pips__/sqlalchemy/sql/elements.py", line 2745, in
> _literal_as_text
>     "SQL expression object or string expected." sqlalchemy.exc.ArgumentError: SQL expression object or string
> expected.
Run Code Online (Sandbox Code Playgroud)

所以我尝试了这个:

users = Table('users', metadata, …
Run Code Online (Sandbox Code Playgroud)

python sql select sqlalchemy

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

分离SQLite数据库时出错 - 数据库已锁定

我有一个基于SQLite数据库的系统.每个客户端都有一个本地数据库,并且偶尔从主服务器到达一个小的delta .db文件.任务是使用增量文件合并到本地数据库,两者中的模式相同.

对于我的数据库管理,我使用fmdb包装器,可以在这里找到.在主线程中,我保持与本地数据库的连接打开.增量文件到达后台,我想在后台进行合并,以避免任何用户界面冻结,这可能导致.

至于合并本身,我发现的唯一选择是将delta数据库附加到本地数据库,然后插入/更新行,最后分离delta.这不像我预期的那样顺利.

代码说明:

  • onDeltaGenerated方法在后台线程中每当增量数据库准备好被处理的(从服务器到达,并且被保存在可读位置)调用.
  • deltaDBPath是在文件系统中的数据库增量的绝对位置.
  • DB变量引用开放FMDataBase连接.

码:

- (void)onDeltaGenerated:(NSNotification*)n {
NSString* deltaDBPath = [[n userInfo] objectForKey:@"deltaPath"];
@synchronized(db) {
    [db executeUpdate:@"ATTACH DATABASE ? AS delta", deltaDBPath];
    if ([db hadError]) {
        NSLog(@" ****ERROR*** %d: %@", [db lastErrorCode], [db lastErrorMessage]);
    } else {
        NSLog(@"Delta attached from %@", deltaDBPath);
    }
    [db beginTransaction];
    BOOL update1 = NO;
    BOOL update2 = NO;
    BOOL transaction = NO;
    update1 = [db executeUpdate:@"INSERT OR REPLACE INTO equipment SELECT * …
Run Code Online (Sandbox Code Playgroud)

sqlite multithreading objective-c fmdb

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

无法通过Jenkins上的xcodebuild从命令行执行测试

我正在使用以下命令来执行测试:

xcodebuild test -workspace MyApp.xcworkspace -scheme MyScheme -destination 'platform=iOS Simulator,name=iPhone 6,OS=8.1'
Run Code Online (Sandbox Code Playgroud)

这在本地工作正常,但是当我在Jenkins上尝试它时,它失败并出现以下错误:

xcodebuild test -workspace MyApp.xcworkspace -scheme MyScheme -destination'platform = iOS模拟器,名称= iPhone 6,OS = 8.1'

xcodebuild:错误:无法找到与提供的目标说明符匹配的目标:{platform:iOS Simulator,OS:8.1,name:iPhone 6}

找不到请求的设备,因为没有可用的设备与请求匹配.

"MyScheme"方案的可用目的地:

构建步骤'执行shell'将构建标记为失败

完成:失败

所以我在Jenkins上启动了Xcode GUI来检查iPhone 6模拟器是否存在,它就在那里.另一个有趣的事情是当我运行相同的xcodebuild命令而没有在本地指定目标的名称和操作系统时,我得到所有可用模拟器的列表,如下所示:

"MyScheme"方案的可用目的地:{platform:iOS Simulator,id:683233C4-EC2B-48A3-826B-10EF62A875CD,OS:8.1,name:iPad 2} {platform:iOS Simulator,id:6358A6F5-2FD0-4377- BD32-0A2C3329276D,OS:8.1,名称:iPad Air} {platform:iOS Simulator,id:224533ED-94DA-46CC-B1DB-1781A1C80710,OS:8.1,名称:iPad Retina} {platform:iOS Simulator,id:D114BC7E- A913-4063-A349-C119BAFC06DA,操作系统:8.1,名称:iPhone 4s} {platform:iOS Simulator,id:7AF6D6F4-C6BC-4A47-B83C-3A4B43ABE0DD,OS:8.1,name:iPhone 5} {platform:iOS Simulator, id:BE82D607-466A-43E5-863D-6A05F217C117,OS:8.1,名称:iPhone 5s} {platform:iOS Simulator,id:0AFCC9AB-7C59-48C7-9BFB-FBF4865B7A63,OS:8.1,name:iPhone 6 Plus} {平台:iOS模拟器,ID:D183FF05-3023-4FB5-BEA0-290EA881040A,操作系统:8.1,名称:iPhone 6} {平台:iOS模拟器,id:26038DBD-791C-421E-99F4-9153CA726A2F,操作系统:8.1,名称:可调整大小的iPad} {平台:iOS模拟器,ID:31B2F0AE-3547-4189-A561-CD2088F6C645,操作系统:8.1,名称:可调整大小的iPhone}

但是当我在Jenkins上做同样的事情时,这个列表是空的.

我在本地和Jenkins上使用Xcode版本6.1(6A1052d),我的方案是正确共享的,所以当我在Jenkins上启动它时,我可以在GUI中看到它们.我不确定它是否相关,但我正在使用工作区清理插件,我在构建Jenkins之前删除了所有派生数据.

编辑: 我发现当使用generic /我的目标值前置时,我会在Jenkins上获得正确的模拟器列表,它仍然会抱怨我无法找到要运行的模拟器,即使我使用的是在列表中:

xcodebuild test -workspace MyApp.xcworkspace -scheme MyScheme -destination'generic/platform = iOS模拟器,名称= …

xcode command-line unit-testing ios jenkins

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

Wordpress中自定义帖子类型的自定义图像大小

我正在尝试articles通过以下功能将自定义图像大小添加到自定义帖子类型的帖子中functions.php:

function thumb_size($id)
{
    if(get_post_type() == "articles")
    {
        add_image_size('articles-thumb', 113, 72, true);
    }
}
add_action ( 'publish_post', 'thumb_size' );
Run Code Online (Sandbox Code Playgroud)

并尝试通过以下代码显示它:

the_post_thumbnail('articles-thumb');
Run Code Online (Sandbox Code Playgroud)

但我所看到的输出,与我声明的大小不同,问题是什么?

wordpress

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

在heroku上运行flask-migrate会产生错误

我正在尝试使用flask-migrate在本地对数据库进行版本控制,然后反映生产中的更改(Heroku)。到目前为止,我已经成功地对本地数据库进行了版本控制并对其进行了升级,所以现在我想在Heroku上反映出来。为此,我将最新的代码状态以及新创建的迁移文件夹和更新的requirements.txt 推送到了Heroku 。我看到依赖关系已成功安装:

Successfully installed Flask-Migrate alembic Flask-Script Mako
Run Code Online (Sandbox Code Playgroud)

然后,我尝试:

$ heroku run python app/hello.py db upgrade
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到这个回应:

Running `python app/hello.py db upgrade` attached to terminal... up, run.4322
Traceback (most recent call last):
  File "app/hello.py", line 37, in <module>
    manager.run()
  File "/app/.heroku/python/lib/python2.7/site-packages/flask_script/__init__.py", line 405, in run
    result = self.handle(sys.argv[0], sys.argv[1:])
  File "/app/.heroku/python/lib/python2.7/site-packages/flask_script/__init__.py", line 384, in handle
    return handle(app, *positional_args, **kwargs)
  File "/app/.heroku/python/lib/python2.7/site-packages/flask_script/commands.py", line 145, in handle
    return self.run(*args, **kwargs)
  File "/app/.heroku/python/lib/python2.7/site-packages/flask_migrate/__init__.py", line 97, in upgrade
    config = _get_config(directory) …
Run Code Online (Sandbox Code Playgroud)

python heroku alembic flask-migrate

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

如果视图不在视图层次结构中,则不会调用GADBannerView委托方法

我正在iOS上使用Google移动广告SDK并尝试展示一些广告.我的代码:

GADBannerView* bannerView = [[GADBannerView alloc] initWithAdSize:GADAdSizeFromCGSize(CGSizeMake(300, 250))];
bannerView.adUnitID = @"hidden";
bannerView.rootViewController = self;
bannerView.delegate = self;

GADRequest* request = [GADRequest request];
request.testDevices = @[ kGADSimulatorID ];

[bannerView loadRequest:request];
Run Code Online (Sandbox Code Playgroud)

如果我在bannerView上面看到的代码后面添加到视图层次结构,这可以正常工作.但是,我不想在加载广告之前添加它,所以我想延迟它.我注意到,如果bannerView不在视图层次结构中,则根本不调用委托方法.此外,我找到了这个答案,这与我所观察到的一致.另一方面,这是来自GADBannerViewDelegate标头的引用:

/// Tells the delegate that an ad request successfully received an ad. The delegate may want to add
/// the banner view to the view hierarchy if it hasn't been added yet.
- (void)adViewDidReceiveAd:(GADBannerView *)bannerView;
Run Code Online (Sandbox Code Playgroud)

这表明即使视图不在层次结构中也应该可以接收那些委托回调,这正是我想要的.所以,任何想法我怎么能实现这一目标?

delegates objective-c admob ios gadbannerview

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