-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
[self.map removeAnnotations:self.map.annotations];
if ([textField isEqual:self.searchText]) {
NSPredicate *bPredicate =
[NSPredicate predicateWithFormat:@"name contains[c], %@",self.searchText.text];
self.filteredArray = [self.hotelArray filteredArrayUsingPredicate:bPredicate];
NSLog(@" HEARE %@",self.filteredArray);
[self markAllHotels];
}
return YES;
}
Run Code Online (Sandbox Code Playgroud)
hotelArray
并且filteredArray
是NSArray
.
hotelArray
有一个类型的对象hotel
,其中hotel
有一个属性name
.
问题:我想筛选hotelArray
根据hotel.name
时hotel.name
中输入匹配的文本searchText
[文本字段],但我得到一个空self.filteredArray
.
我目前正在尝试将我们的内部项目从setup.py
( pyproject.toml
PEP -518 ) 移走。如果可能的话,我不想使用构建后端特定的配置,即使我确实[build-system]
通过require
“ing”在该部分中指定了后端。
这些pyproject.toml
文件或多或少是setup.py
文件的直接翻译,元数据根据PEP-621设置,包括dependencies
. 我们用于setuptools_scm
确定版本,因此该version
字段最终位于该dynamic
部分中。
我们曾经在文件中设置packages
参数,但我在 中找不到任何相应的字段,所以我干脆省略了它。setup
setup.py
pyproject.toml
当使用 构建项目时python3 -m build .
,我最终得到一个名为 的包UNKNOWN
,即使我name
在[project]
部分中设置了字段。看来这在构建的早期就中断了:
$ python -m build .
* Creating virtualenv isolated environment...
* Installing packages in isolated environment... (setuptools, setuptools_scm[toml]>=6.2, wheel)
* Getting dependencies for sdist...
running egg_info
writing UNKNOWN.egg-info/PKG-INFO
....
Run Code Online (Sandbox Code Playgroud)
我正在使用 python …
我使用lupdate v4.7.2遇到了一个非常奇怪的错误.我收到了错误消息
module/foo.cpp:6:使用unknown namespace/class :: foo进行限定
对于一个有大约50个班级的项目中的几个班级.我将问题归结为一个简单的例子:
SRC/project.pro:
QT += core
TARGET = test
TEMPLATE = app
SOURCES += main.cpp \
screen.cpp
HEADERS += screen.h
TRANSLATIONS += de.ts
Run Code Online (Sandbox Code Playgroud)
SRC /模块/ foo.h中:
namespace sp {
class foo {
initWidgets();
};
} // namespace sp
Run Code Online (Sandbox Code Playgroud)
SRC /模块/ Foo.cpp中:
#include <QString>
#include "module/foo.h"
namespace sp {
foo::initWidgets() {
QString bar = tr("bar");
}
} // namespace sp
Run Code Online (Sandbox Code Playgroud)
main.cpp中有一个空的main函数.
代码编译(除非我可能在这里产生任何copypasta错误),所以语法基本上是正确的.
我有一个相当庞大的autotools驱动的项目,它位于一个目录树中,该目录树由许多带有子目录的目录组成.它有一个目标check
(在每个子目录和主目录中)执行大量自动化测试.该check
目标是递归构建.
并行构建和测试(通过-j
make选项)适用于大多数目录.但是有一个目录包含并行执行时不起作用的测试(定时灵敏度),但是在串行运行时通过.
问题是:有没有办法强制make check
在这一个子目录中串行构建目标,同时并行构建其他所有子目录?
我需要能够使用带有log4cxx的utf-8编码字符串.我可以正常打印字符串std::cout
(字符显示正确).使用log4cxx,即将字符串放入LOG4CXX_DEBUG()
宏中,ConsoleAppender
输出"??" 而不是特殊的角色.我找到了一个解决方案
LOG4CXX_DECODE_CHAR(logstring, str);
LOG4CXX_DEBUG(logstring);
Run Code Online (Sandbox Code Playgroud)
str
我的输入字符串在哪里,但这不起作用.任何人都知道这可能如何工作?我谷歌了一下,但我找不到任何有用的东西.
在Mint Linux 12上使用Qt4.8,我实现了一个包含QTableView
显示模型内容的简单窗口.模型数据不断更新(记录消息),并dataChanged()
定期发出信号(即每100ms).
我看到的问题是桌面上的视觉更新.
我在窗口上安装了一个事件过滤器来计算updateRequest
类型事件,这应该触发一个窗口小部件重绘(也可以在子窗口小部件上,即tableView
).它们之间的平均时间约为170毫秒,标准偏差约为90毫秒(我猜这是相当大的).然而,感知的视觉更新率仅为每秒两到三次,我想知道为什么.似乎并非所有updateRequest
事件都触发窗口小部件重绘或窗口系统吞下视觉更新.
作为第二次测试,我强制窗口通过调用repaint
或update
每100ms 更新自己.使用时repaint
,我看到了相应的updateRequest
类型事件增加和间隙标准差的减少; 用update
,数量没有增加.但是,在这两种情况下,感知更新率只有适度增加.
另外:有没有一个很好的方法来衡量一个小部件实际真正重新绘制的频率,而不必重载它的paintEvent
处理程序?也许来自QTest
哪里?
更新:我将事件过滤器扩展为catch paintEvent
-type事件.对于> 1000种updateRequest
类型的事件,只有一位数的数字.
我有一个类(让我们base
暂时调用它)具有受保护的接口,包括受保护的构造函数等.base
返回base
值的实例的一些函数:
class base {
protected:
base() {}
base (base const &other) {} // line 6
base foo () {
base ret;
return ret;
}
};
Run Code Online (Sandbox Code Playgroud)
这些函数包装在派生类中,以返回派生类型,如下所示:
class derived : public base {
private:
derived(base const &b) : base(b) {}
public:
derived() : base() {}
derived foo() {
derived d(base::foo()); // line 21
return d;
}
};
Run Code Online (Sandbox Code Playgroud)
为了便于从base
返回类型转换为derived
返回类型,我提供了一个私有构造函数derived
来处理它.
使用gcc 4.1.2在Centos 5.8上进行编译会产生以下错误:
test.cpp: In member function ‘derived derived::foo()’:
test.cpp:6: error: …
Run Code Online (Sandbox Code Playgroud) 我见过这个问题,它朝着类似的方向发展,但并不完全。问题在于标签没有正确推送。
我目前正在使用 Jenkins 构建我的 python 项目setuptools_scm
,它基本上用于git describe
获取(或多或少)合理的版本号,即使不在标签上。管道是使用 JobDSL 中的种子作业定义的,如下所示(缩写为了解要点):
import BuildProjects
BuildProjects.build_projects.each { def bproject ->
multibranchPipelineJob("tool/${bproject}") {
branchSources {
branchSource {
source {
git {
id('tool_${bproject}')
remote("${BuildProjects.scmBaseLocation}/${bproject}.git")
credentialsId(BuildProjects.scmUser)
traits {
gitBranchDiscovery()
gitTagDiscovery()
cloneOptionTrait {
extension {
shallow(false)
noTags(false)
reference('grmblwrx')
timeout(1)
}
}
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
一些配置值取自BuildProjects
.
运行 jenkins 时,我看到它获取标签:
> git fetch --tags --progress -- ssh://git@git.my-company.net/tools.git +refs/heads/*:refs/remotes/origin/* # timeout=1
Run Code Online (Sandbox Code Playgroud)
事实上,当我使用 Jenkinsfile 输出标签时,我可以看到标签
sh "git tag"
Run Code Online (Sandbox Code Playgroud)
堵塞。但是使用
sh …
Run Code Online (Sandbox Code Playgroud) 我有以下代码:
QPair<QSharedPointer<unsigned int>, int> someclass::somefunction() {
int siz = data_size();
QSharedPointer<unsigned int> buffer(new unsigned int[siz]);
// Fill the buffer...
return qMakePair(buffer, siz);
}
Run Code Online (Sandbox Code Playgroud)
在某些时候,QSharedPointer
此函数返回的内容将超出范围,构造函数中设置的指针将被释放.使用valgrind 3.6.1,我得到一个"不匹配的free()/ delete/delete []"错误.我的使用是否有任何问题,QSharedPointer
或者我是否必须忍受这种valgrind警告?
我在codepad.org上运行以下代码,我收到此错误."在成员函数'double Xchange :: getprice(std :: string)'中:第87行:警告:有符号和无符号整数表达式之间的比较"
这是我的代码:
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Xchange
{
public:
Xchange();//does nothing (?)
double getprice(string symbol);
private:
vector <Stock> stocks;
};
double Xchange::getprice(string symbol)
{
for(int i=0; i < stocks.size(); i++) {
if(stocks[i].getsymbol()==symbol) {
return stocks[i].getprice();
}
}
return -1; //means not found
}
Run Code Online (Sandbox Code Playgroud) 出于性能原因,我在代码中使用了大量参数化查询.简而言之,其中一些是有效的,有些则不然.
我在构建数据库包装器时初始化查询,如下所示:
QString querystring = QString("SELECT somevalue FROM sometable "
"WHERE one_feature = :one_feature AND other_feature = :other_feature ");
myquery = QSqlQuery(db);
myquery.setForwardOnly(true);
myquery.prepare(querystring);
Run Code Online (Sandbox Code Playgroud)
myquery
是QSqlQuery
我的数据库包装器的成员变量.稍后,在想要使用此查询的函数中,我执行类似的操作
int db_wrapper::fetch_some_value (int arg1, int arg2) {
myquery.clear();
myquery.bindValue(":one_feature", arg1);
myquery.bindValue(":other_feature", arg2);
qDebug() << "Bound values: " << myquery.boundValues();
bool OK = myquery.exec();
if (!OK) {
int number = myquery.lastError().number();
qDebug() << "db error " << number;
qDebug() << "db error " << myquery.lastError().text();
#ifdef USE_EXCEPTIONS
throw "Could not fetch some_value!";
#endif …
Run Code Online (Sandbox Code Playgroud) 我不能if/else, if/else if/else
在#define
指令中使用吗?下面的代码给出错误:
#include <stdio.h>
#define makro(a) if(a%2 == 0) 1 else 0;
int main(void) {
// your code goes here
int a = makro(5);
printf("%d\n", a);
return 0;
}
prog.c: In function ‘main’:
prog.c:3:18: error: expected expression before ‘if’
#define makro(a) if(a%2 == 0) 1 else 0;
^
prog.c:7:10: note: in expansion of macro ‘makro’
int a = makro(5);
^
Run Code Online (Sandbox Code Playgroud) c++ ×6
qt ×4
autotools ×1
build ×1
c ×1
class ×1
gcc ×1
git ×1
ios ×1
iphone ×1
jenkins ×1
log4cxx ×1
logging ×1
macros ×1
makefile ×1
namespaces ×1
objective-c ×1
python ×1
qtableview ×1
qtsql ×1
qwidget ×1
setup.py ×1
sqlite ×1
translation ×1
visibility ×1