小编nik*_*ans的帖子

SQLite:LIKE'searchstr%'应该使用索引吗?

我有一个包含多个字段的数据库

word_id — INTEGER PRIMARY_KEY
word — TEXT
...
Run Code Online (Sandbox Code Playgroud)

..和~150k行.

由于这是一本字典,我正在'search_string%'使用LIKE 搜索带掩码的单词.它曾经工作得很好,需要15ms才能找到匹配的行.该表具有字段的索引'word'.最近我修改了表(该表的一些字段超出了范围)并发生了一些事情 - 执行查询需要400ms,所以我理解它现在无法使用索引.使用=而不是like的直接查询显示10ms的结果.有人知道这里发生了什么吗?

sql sqlite cocoa query-performance sql-like

20
推荐指数
1
解决办法
7407
查看次数

Swift:如何使Subclass返回类型的函数符合协议,其中Superclass被定义为返回类型?

我有一个协议,其中定义了一个函数,函数的返回类型是a SuperclassType.

在符合协议的类中,我试图定义此函数,但具有SubclassType返回类型.

编译器告诉我,这个类不符合协议,因为很明显SubclassType!=SuperclassType

protocol SomeProtocol {
  func someFunction(someParameter:SomeType) -> SuperclassType?
}

class SomeClass : SomeProtocol {
  func someFunction(someParameter:SomeType) -> SubclassType? {
    ...
  }
}

class SubclassType : SuperclassType { }
Run Code Online (Sandbox Code Playgroud)

但是,常识告诉我,这SubclassType应该是一个合适的替代品SuperclassType.

我究竟做错了什么?

谢谢.

oop protocols swift

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

释放对象:[obj release]; 是不够的,需要[obj release],obj = nil;?

在这里我得到了一些丑陋的代码:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy"];
NSDate *date = [NSDate date];
NSString *textWithYear = [NSString stringWithFormat:@"text and year %@", [dateFormatter stringFromDate:date] ];
[dateFormatter release];
NSLog(@"%i", [dateFormatter retainCount]); // returns 1 !
Run Code Online (Sandbox Code Playgroud)

如您所见,保留计数器返回1,我想这意味着该对象未被释放.如果我将该字符串更改为

[dateFormatter release], dateFromatter = nil;
Run Code Online (Sandbox Code Playgroud)

保留计数器返回0,这应该是因为它无法计算nil的保留:)

有什么东西我不了解保留计数器,或者这个对象真的没有发布?当我release第二次发送它(努力获得零保留计数)时,它会预期粉碎:)

还有一个问题:如果dateFormatter真的被释放了,为什么当我调用[dateFormatter retainCount]时它不会崩溃?

null memory-management objective-c retaincount

0
推荐指数
1
解决办法
143
查看次数