小编Mat*_* W.的帖子

没有使用基本活动的Ormlite设置

我在android项目中使用ORMLite,我不想使用扩展活动,因为我在AsyncTask上将值插入数据库.

在文档中它说:

"如果你不希望延长OrmLiteBaseActivity与其他基类,那么你将需要复制它们的功能.你需要调用OpenHelperManager.getHelper(Context context, Class openHelperClass)你的代码的开始,保存帮手,当你想使用它了,然后调用OpenHelperManager.release()时你完成了它."

它还说要添加数据库助手类strings.xml,我有.所以我不确定我做错了什么.

我正在使用一个名为DataAccess我的数据层的类,如下所示:

public class DataAccess {
    private Context context;
    private DBHelper dbHelper;

    public DataAccess(Context _context) {
        this.context = _context;
        dbHelper = getDBHelper(_context);
    }

    private DBHelper getDBHelper(Context context) {
        if (dbHelper == null) {
            dbHelper = (DBHelper) OpenHelperManager.getHelper(context, DBHelper.class);
        }
        return dbHelper;
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用扩展的助手类:

public class DBHelper extends OrmLiteSqliteOpenHelper {
    private static final String DATABASE_NAME = "database.db";
    private static final int DATABASE_VERSION …
Run Code Online (Sandbox Code Playgroud)

java android ormlite

12
推荐指数
1
解决办法
4938
查看次数

NSDateComponents - 返回错误日期的日方法

当我到了2011年11月6日时,我似乎无法弄清楚为什么这一天不会发生变化.我所做的一切都在迭代.任何帮助,将不胜感激.这是我的代码:

NSCalendar* calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents* comp = [[NSDateComponents alloc] init];

[comp setDay:2];
[comp setMonth:11];
[comp setYear:2011];

NSDate* date = [calendar dateFromComponents:comp];

for (int i = 0; i < 7; i++) {
    NSDate* d = [date dateByAddingTimeInterval:((3600 * 24) * i)];
    NSDateComponents* dComponents = [calendar components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:d];

    int day = [dComponents day];
    NSLog(@"\nDate: %@\nDay: %i", [d description], day);
}
Run Code Online (Sandbox Code Playgroud)

这是我的输出:

Date: 2011-11-02 06:00:00 +0000
Day: 2

Date: 2011-11-03 06:00:00 +0000
Day: 3

Date: 2011-11-04 …
Run Code Online (Sandbox Code Playgroud)

iphone nsdatecomponent

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

NSNumber比较:返回不同的结果

我正在尝试进行一些数字比较,我得到了一些奇怪的结果.

NSNumber* number1 = [NSNumber numberWithFloat:1.004];
NSNumber* number2 = [NSNumber numberWithDouble:1.004];

([number1 compare:number2] == NSOrderedSame) ? NSLog(@"YES") : NSLog(@"NO");
([number1 compare:number2] == NSOrderedAscending) ? NSLog(@"YES") : NSLog(@"NO");
([number1 doubleValue] == [number2 doubleValue]) ? NSLog(@"YES") : NSLog(@"NO");
([number1 floatValue] == [number2 floatValue]) ? NSLog(@"YES") : NSLog(@"NO");
Run Code Online (Sandbox Code Playgroud)

日志输出:

NO
YES
NO
YES

这对我来说非常令人沮丧.我知道这可能是因为浮点数与双精度数之间的差异.在我看来,它正在将双倍缩减到浮点数来进行比较.但如果我不知道如何创建数字,我该如何得到正确的结果呢?是否有不同的方法来比较NSNumber?

iphone objective-c nsnumber

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

GSON解析动态JSON字段

我似乎无法弄清楚这一点.我看了几个SO帖子(这里这里),我的情况有点不同.

我不确定我是否必须注册一个新的TypeToken或什么.但我的JSON对象如下所示:

{
    "id": 6,
    "error": "0",
    "dates": {
        34234 : "2011-01-01" // I want to parse the date into a string.
        87474 : "2011-08-09" // The first values are all unique.
        .                    //this can be any number of entries.
        .
        .
        74857 : "2011-09-22"
    }
}
Run Code Online (Sandbox Code Playgroud)

我创建了两个像这样的对象:

public class Response {

    public Integer id;
    public String error;
    public DateList dates;
}
Run Code Online (Sandbox Code Playgroud)

单独的文件:

public class DateList {

    public List<Map<Integer, String>> dateString;
}
Run Code Online (Sandbox Code Playgroud)

我不确定如何调整它以使其正确.文档似乎没有帮助...我见过的其他示例是解析自定义对象,而不是字符串类型.

谢谢!

java gson

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

如何将CKQueryNotification连接到CKRecord或CKSubsription?

我需要一种方法将CKQueryNotification连接到CKRecord或CKSubscription,这样我就可以在多种记录类型上接收更新/插入/删除.我成功收到CKNotifications,这是有效载荷:

{
    ck =     {
        ce = 2;
        cid = "<my cloud container id>";
        nid = "<unknown guid>";
        qry =         {
            dbs = 2;
            fo = 1;
            rid = "<the record id>";
            sid = "<THIS IS THE SUBSCRIPTION ID>";
            zid = "_defaultZone";
            zoid = "_defaultOwner";
        };
    };
}
Run Code Online (Sandbox Code Playgroud)

我可以通过通知有效负载获取订阅ID,我可以将订阅ID绑定到知道记录类型的本地缓存,但我想使用CKFetchNotificationChangesOperation来检索未读通知,此时我只有一个CKQueryNotification对象.

CKQueryNotification对象只有一个CKRecordID,据我所知,我无法从CKRecordID获得CKRecord.我可以在我的容器中对我的所有CKRecord-> recordType执行查询,但这似乎不对.

任何帮助表示赞赏!

ios cloudkit cknotification

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