小编Ste*_*v_k的帖子

NSData isEqualtoData

我真的不明白这里发生了什么.

我有一个函数从NSData对象receiveStream获取前3个字节,并通过char数组将它们放入另一个NSData对象temp中.然后将其与从char数组缓冲区创建的NSData对象进行比较.两个新的NSData对象都已创建并具有正确的内容.但是,当调用isEqualtoData时,我收到一个错误:

[NSConcreteData isEqualtoData:]:发送到实例无法识别的选择(例如是指TMP2)

我也得到了警告

未找到实例方法'-isEqualtoData:'(返回类型默认为'id')

我不明白,因为很明显这是文档中的有效方法.我需要在某处声明NSData.h吗?

-(BOOL)checkHeader{
    char tmp[3];
    [receivedStream getBytes:&tmp length:3];
    NSData *temp = [NSData dataWithBytes:tmp length:3];
    NSData *tmp2 = [NSData dataWithBytes:header length:3];
    BOOL test = [tmp2 isEqualtoData:temp];
    return test;
}
Run Code Online (Sandbox Code Playgroud)

objective-c nsdata

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

在Android中使用CursorAdapter进行ORMLite

我正在修改我的Android应用程序以使用ORMLite,它目前使用了许多CursorAdapter,我非常希望尽量减少编码.

我不是100%肯定但是看起来当ORMLite在db中创建一个id字段时,它总是使用id,而CursorAdapter需要_id.

可以使用如下查询来解决此问题:

select id as _id ......
Run Code Online (Sandbox Code Playgroud)

但该Dao.queryRaw()方法返回一个列表,而不是Cursor,所以我这样做的方法是打开另一个SQLiteOpenHelper数据库连接并使用rawQuery().

这有效,但有没有更好的方法呢?拥有两个独立的数据库连接似乎有点过头了,以后可能会存在麻烦.

android ormlite android-cursoradapter

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

从Strongloop环回下载文件

我在loopback API中有一个模型,我想将其作为文件下载而不是将其显示为文本.我有我有一些旧的PHP代码bastardized适应尝试和下载响应的文件.

这是我的代码:

Issue.afterRemote('getCSV', function(ctx, affectedModelInstance, next) {
var result = ctx.result;
console.log(result);
var currentdate = new Date(); 
var datetime = currentdate.getDate() + " " +
            + (currentdate.getMonth()+1) + " " +
            + currentdate.getFullYear() + " " +
            + currentdate.getHours() + ":"  
            + currentdate.getMinutes() + ":" 
            + currentdate.getSeconds(); + " ";
ctx.res.set('Expires', 'Tue, 03 Jul 2001 06:00:00 GMT');
ctx.res.set('Cache-Control', 'max-age=0, no-cache, must-revalidate, proxy-revalidate');
ctx.res.set('Last-Modified', datetime +'GMT');
// force download  
ctx.res.set('Content-Type','application/force-download');
ctx.res.set('Content-Type','application/octet-stream');
ctx.res.set('Content-Type','application/download');
// disposition / encoding on response …
Run Code Online (Sandbox Code Playgroud)

node.js loopbackjs

11
推荐指数
1
解决办法
7672
查看次数

ShapeDrawable中的偏移形状

我正在尝试使用一个扩展ShapeDrawable的类(参见此处)绘制一个带有边框的圆角矩形,并且一切正常,除了shaperawable似乎切掉了一些边框,因为形状本身并没有延伸到外面那些界限.

是否有一些方法可以抵消shaperawable开始绘制的位置,以便在形状本身和画布的边界之间有一些填充?我已经尝试将ShapeDrawable.setBounds大于形状和ShapeDrawable.setPadding的内在大小,但似乎没有得到任何地方.我应该继承Drawable的子类吗?

android shapes drawable

10
推荐指数
1
解决办法
9862
查看次数

从另一个脚本导入python脚本并使用参数运行它

我有一个python脚本,它已被打包为命令行脚本(因为你问的问题,pyrseas中的dbtoyaml.py).

我正在运行另一个python脚本,我想从中调用此脚本.有没有办法导入模块并从我的第二个脚本中人工填充所需的参数,以避免更改任何pyrseas代码?

from pyrseas import dbtoyaml -- My initial script, which also takes arguments dbtoyaml.main(['-m','-H MYHOSTNAME' .... other options])

还没有为我工作.

我收到一个奇怪的错误:

usage: checkSchemaChanges.py [-h] [-H HOST] [-p PORT] [-U USERNAME] [-W]
                         [-c CONFIG] [-r REPOSITORY] [-o OUTPUT]
                         [--version] [-m] [-O] [-x] [-n SCHEMA]
                         [-N SCHEMA] [-t TABLE] [-T TABLE]
                         dbname
checkSchemaChanges.py: error: unrecognized arguments: MYHOSTNAME mydatabaseuser
Run Code Online (Sandbox Code Playgroud)

这是我的新脚本(checkSchemaChanges.py,底部的MYHOSTNAME和mydatabaseuser)和dbtoyaml中的参数的混合,这些都是正确的.

这可能是令人困惑的argparse的双重参数吗?

python argparse

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

Ormlite Android批量插入

任何人都可以解释为什么我的插页在Ormlite中花了这么长时间?在桌面上的一个sqlite事务中执行1,700次插入只需不到一秒钟.但是,当使用Ormlite for Android时,它需要大约70秒,我可以在调试消息中看到每个插入.

当我尝试将插入包装到一个事务中时,它以完全相同的速度运行.我知道Android和Ormlite都有开销,但是,我不希望它那么棒.我的代码如下:

    this.db = new DatabaseHelper(getApplicationContext());
    dao = db.getAddressDao();
final BufferedReader reader = new BufferedReader(new InputStreamReader(getResources().openRawResource(R.raw.poi)));
    try {
        dao.callBatchTasks(new Callable<Void>() {
            public Void call() throws Exception {
                String line;
                while ((line = reader.readLine()) != null) {
                    String[] columns = line.split(",");
                    Address address = new Address();
                    // setup Address
                    dao.create(address);
                } 
            return null;
         }
        });
    } catch (SQLException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

sqlite android transactions ormlite

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

从生成的AutoCompleteTextView $ DropDownListView获取有关AutocompleteTextView的信息

我正在使用3个AutocompleteTextViews来建议数据库中的条目.我将AutocompleteTextView子类化,以便在单击时将默认文本设置为null,如果移开则设置回默认指令并且不输入任何内容.

我使用SimpleCursorAdapter绑定到视图,但我发现我无法从OnItemClickListener获取AutocompleteTextView的id,我需要在变量中的所选行中添加其他信息,具体取决于AutocompleteTextView来自.我可以访问的只是AutoCompleteTextView $ DropDownListView,它是一个未记录的内部类,似乎没有提供真正的功能.也没有办法上升视图层次结构来获取原始的AutocompleteTextView.

因此,我将SimpleCursorAdapter子类化,并在构造函数中添加了一个int,以识别适配器来自哪个AutocompleteTextView,并且我能够从传递给OnItemClick()的视图中访问它.所以,虽然我的解决方案工作正常,但我想知道是否有可能从DropDownListView获取AutocompleteTextView的id?

我还使用另一个数据库查询从OnItemClick获取id,然后查找该项的数据,因为我找不到将多个列转换为字符串的方法.我应该使用CursorAdapter来保存启动另一个查询吗?哦,另外一件事,我最初需要一个数据库游标(all_cursor),当我正在做的就是过滤它以获得一个新游标?似乎有点矫枉过正.

活动....

    dbse.openDataBase();
    Cursor all_Cursor = dbse.autocomplete_query();
    startManagingCursor(all_Cursor);
    String[] from_all = new String[]{DbAdapter.KEY_NAME};
    int[] to_all = new int[] {android.R.id.text1};
    from_adapt = new AutocompleteAdapter(FROM_DBADAPTER, this,android.R.layout.simple_dropdown_item_1line, all_Cursor, from_all, to_all);
    from_adapt.setStringConversionColumn(1);
    from_adapt.setFilterQueryProvider(this);
    to_adapt = new AutocompleteAdapter(TO_DBADAPTER, this,android.R.layout.simple_dropdown_item_1line, all_Cursor, from_all, to_all);
    to_adapt.setStringConversionColumn(1);
    to_adapt.setFilterQueryProvider(this);   
from_auto_complete = (Autocomplete) findViewById(R.id.entry_from);
from_auto_complete.setAdapter(from_adapt);
from_auto_complete.setOnItemClickListener(this);

to_auto_complete = (Autocomplete) findViewById(R.id.entry_to);
to_auto_complete.setAdapter(to_adapt);
to_auto_complete.setOnItemClickListener(this);

public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
    Cursor selected_row_cursor = dbse.data_from_id(id);
    selected_row_cursor.moveToFirst();
    String lat = selected_row_cursor.getString(1);
    String lon = …
Run Code Online (Sandbox Code Playgroud)

android

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