小编mle*_*s54的帖子

关键值观察者仍然注册时的解除分配(反向地理编码器)

当我的观点消失时,我收到以下消息:

An instance 0x1c11e0 of class MKAnnotationView was deallocated while key value observers were still registered with it. Observation info was leaked, and may even become mistakenly attached to some other object. Set a breakpoint on NSKVODeallocateBreak to stop here in the debugger. Here's the current observation info:
Run Code Online (Sandbox Code Playgroud)

(上下文:0x0,属性:0x1e98d0>)

定义和启动反向地理编码的代码是:

geo=[[MKReverseGeocoder alloc] initWithCoordinate:droppedAt];
        geo.delegate=self;
        [geo start];
Run Code Online (Sandbox Code Playgroud)

在我解除视图之前,我已经尝试将geo.delegate设置为nil.那太简单了.我也尝试过:

for (id <MKAnnotation> annotation in mvMap.annotations) {
    [[mvMap viewForAnnotation:annotation] removeObserver:self forKeyPath:@"selected"];
}
Run Code Online (Sandbox Code Playgroud)

这引发了一个错误:

*由于未捕获的异常'NSRangeException'而终止应用程序,原因是:'无法删除"选中"的关键路径的观察者,因为它未注册为观察者.

我对注释代码的看法是:

-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
    MKAnnotationView …
Run Code Online (Sandbox Code Playgroud)

iphone reverse-geocoding mkannotationview

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

快速进行字符串搜索

我有一个问题,我正在寻找一些指导来解决最有效的方法.我有2亿个数据字符串,大小从3个字符到70个字符不等.字符串由字母数字和几个特殊字符组成,如短划线和下划线.我需要能够快速搜索整个字符串或字符串中的任何子字符串(最小子字符串大小为3).这里快速定义为不到1秒.

作为我的第一次切入,我做了以下事情:

  1. 创建了38个索引文件.索引包含以特定字母开头的所有子字符串.第一个4mb包含100万个散列桶(哈希链的开始).索引的其余部分包含来自散列桶的链接列表链.我的散列分布非常均匀.100万个散列桶保存在RAM中并镜像到磁盘.

  2. 当一个字符串被添加到索引时,它被分解为其非重复的(在其自身内)3-n字符子串(当n是字符串-1的长度时).因此,例如,"apples"作为pples,pple,ppl,pp存储在"A"索引中(子串也存储在"L"和"P"索引中).

搜索/添加服务器作为守护进程运行(在C++中)并且像冠军一样运行.典型的搜索时间不到1/2秒.

问题出在流程的前端.我通常一次添加30,000个密钥.这部分过程需要永远.通过基准测试,将180,000个可变长度键的空索引的加载时间约为3 1/2小时.

除了很长的加载时间外,该方案有效.

在我坚持优化(或尝试)之前,我想知道是否有更好的方法来解决这个问题.前面和后面的通配符搜索(即:DBMS中的'%ppl%'字符串非常慢(例如MySQL的小时数)对于这么大的数据集.所以看起来DBMS解决方案是不可能的.我不能使用全文搜索,因为我们不是处理普通单词,而是可能或可能不是由真实单词组成的字符串.

c++ search

14
推荐指数
1
解决办法
441
查看次数

如何清除dropzone.js dropzone

我开始使用dropzone.js并遇到了一个小问题.我可以上传文件.我使用模态弹出窗口来获取文件信息.

问题是当我返回我之前上传的文件仍然在放置区域(带有复选标记)时.我想要一个空的dropzone.

想法?

dropzone.js

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

多值类型设置捆绑字段总是返回null

首次启动应用程序时,我在从设置包中检索默认值时遇到问题.所有非多值字段都会正确返回默认值.所有多值字段都返回NULL.我用来检索当前值的代码:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *upt=[defaults objectForKey:@"upthreshold"];
Run Code Online (Sandbox Code Playgroud)

Root.plist的相关部分是:

                <dict>
                    <key>Title</key>
                    <string>Update Threshold</string>
                    <key>Type</key>
                    <string>PSMultiValueSpecifier</string>
                    <key>Key</key>
                    <string>upthreshold</string>
                    <key>DefaultValue</key>
                    <string>15</string>
                    <key>Titles</key>
                    <array>
                            <string>2 km</string>
                            <string>5 km</string>
                            <string>10 km</string>
                            <string>15 km</string>
                            <string>25 km</string>
                            <string>50 km</string>
                            <string>75 km</string>
                            <string>100 km</string>
                            <string>150 km</string>
                            <string>250 km</string>
                            <string>500 km</string>
                            <string>1000 km</string>
                    </array>
                    <key>Values</key>
                    <array>
                            <string>2</string>
                            <string>5</string>
                            <string>10</string>
                            <string>15</string>
                            <string>25</string>
                            <string>50</string>
                            <string>75</string>
                            <string>100</string>
                            <string>150</string>
                            <string>250</string>
                            <string>500</string>
                            <string>1000</string>
                    </array>
            </dict>
Run Code Online (Sandbox Code Playgroud)

我希望"15"将作为当前值返回,因为它被设置为默认值.Multivalue字段是否需要一些不同的处理?正如我之前所说,在此之前有6个字段正确返回它们的值.此字段和以下2个多值字段不会.多值字段都定义相同.

iphone web-applications settings.bundle

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

无法设置NSUserDefaults字段

我在我的应用初始化(第一次)中有以下代码:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *uid=@"1";
[defaults setObject:uid forKey:@"init_val"];
[defaults synchronize];
Run Code Online (Sandbox Code Playgroud)

很久以后在代码中(响应按下按钮)我使用以下方法检查值:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *initVal=[defaults objectForKey:@"init_val"];
Run Code Online (Sandbox Code Playgroud)

initVal总是为零.我已经检查过,init_val在我的设置包中设置与我可以设置和读取的另一个字段完全相同(它们都设置了一个名为"Key"的字段).

iphone nsuserdefaults

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

fstream读/写移动文件指针

这是一个简单的问题,我希望可以轻松回答,文件流读写操作是否可以移动指针?举个例子:

cpos=10000;
for (i=0;i<20;i++) {
   dataFile.seekg(cpos+i,ios::beg);
   dataFile.read(carray[i],1);
}
Run Code Online (Sandbox Code Playgroud)

它(逻辑上)是否相同:

dataFile.seekg(cpos,ios::beg);    
cpos=10000;
for (i=0;i<20;i++) {
    dataFile.read(carray[i],1);
}
Run Code Online (Sandbox Code Playgroud)

换句话说,无论使用哪种方法,carray []都包含相同的内容(我看不出第一种方法是有效的,所以我希望正确的答案是肯定的).如果是这样,写操作表现出相同的行为吗?

c++ fstream

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

gin-gonic进程是否并行请求?

我们有一个基于gin-gonic编写的API服务器。我们注意到有些奇怪的事情使我们相信它是串行处理请求,而不是预期的并行操作。考虑以下日志文​​件:

[GIN] 2016/04/05 - 17:24:37 | 200 |    5.738742ms | 64.... |   POST    /api/v2/d/
[GIN] 2016/04/05 - 17:24:40 | 200 |  3.262816256s | 64.... |   POST    /api/v2/d/
[GIN] 2016/04/05 - 17:24:42 | 200 |    3.563779ms | 64.... |   POST    /api/v2/d/
[GIN] 2016/04/05 - 17:24:43 | 200 |     105.429µs | 64.... |   POST    /api/v2/d/
[GIN] 2016/04/05 - 17:24:43 | 200 |     808.824µs | 64.... |   POST    /api/v2/d/
Run Code Online (Sandbox Code Playgroud)

实时观看日志,直到第二个呼叫结束,才会显示最后3个条目。这五个调用在彼此之间的5毫秒内进行。我们希望这些呼叫应并行处理。这意味着所有呼叫应在17:24:40之前完成,而不是17:24:43。IE:建立连接以处理请求时,服务器会生成新的线程/ goroutine。如果不是这种情况,那么有人对以这种方式工作的软件包有任何建议吗?

这是我们第一个使用gin-gonic的项目,我想知道是否需要设置一些配置参数。任何想法/建议表示赞赏。

go go-gin

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

NSString删除字符串中的单引号

这应该很简单,但它不起作用.我试图使用以下内容从名为parms的NSString中删除单引号(在格式字符串中删除不相关的vars):

NSString *newVar =[[NSString alloc] initWithFormat:@"%@", [parms stringByReplacingOccurrencesOfString:@"'" withString:@""]]; 
Run Code Online (Sandbox Code Playgroud)

因此,如果parms包含"Mike's Hat",我希望newVar包含"Mikes Hat".相反,它包含"迈克的帽子".

iphone nsstring

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

MapView Annotation不拖动

我试图在地图视图中实现一个可拖动的"pin"(实际上是一个自定义图标).这是我的委托代码:

  -(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation {
    MKAnnotationView *aView;

    aView=(MKAnnotationView *) [mvMap dequeueReusableAnnotationViewWithIdentifier:annotation.title];
    if (aView==nil) 
        aView=[[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotation.title] autorelease];
    else
        aView.annotation=annotation;
    [aView setImage:[UIImage imageNamed:selIcon]];
    aView.canShowCallout=TRUE;
    [aView setDraggable:YES];
    return aView;
}
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views { 
    MKAnnotationView *aV; 
    for (aV in views) {
        CGRect endFrame = aV.frame;

        int xDelta=0;
        xDelta=sIcons.selectedSegmentIndex*61+22;
        aV.frame = CGRectMake(aV.frame.origin.x-145+xDelta, aV.frame.origin.y - 150.0, aV.frame.size.width, aV.frame.size.height);

        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.7];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        [aV setFrame:endFrame];
        [UIView commitAnimations];
    }
}
-(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view didChangeDragState:(MKAnnotationViewDragState)newState fromOldState:(MKAnnotationViewDragState)oldState {
    if …
Run Code Online (Sandbox Code Playgroud)

iphone annotations mapkit

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

jquery mobile取消listview中的点击事件

我在listview中包含以下HTML代码段.列表视图中的每个元素都以缩略图开头.

<li>
<a href="javascript:alert("don't want to see this alert);" >
<img src="/images/testimage_thumb.png" onclick="displayImage('/gallery/testimage.jpg');">
<h4>Test Image</h4>
<p>Description of test Image</p>
</a>
</li>

<li>
<a href="javascript:alert("don't want to see this alert either);" >
<img src="/images/testimage2_thumb.png" onclick="displayImage('/gallery/testimage2.jpg');">
<h4>Second Test Image</h4>
<p>Description of the Second Test Image</p>
</a>
</li>
Run Code Online (Sandbox Code Playgroud)

像冠军一样工作(至少就显示而言).我希望能够让用户单击缩略图以显示更大的图像,而不是触发底层锚链接(在这种情况下显示警报消息).

我确定答案在于preventDefault(),只是不确定如何将click事件绑定到允许我访问事件对象的函数.列表视图中将有多个拇指,并且动态生成列表以响应另一个事件.我在加载页面时使用pagebeforeshow()事件来生成列表.

jquery jquery-mobile

3
推荐指数
1
解决办法
975
查看次数

如何获得bootstrap模态大小

我有一个bootstrap模式,其大小设置为:

<div class="modal-dialog modal-lg">
Run Code Online (Sandbox Code Playgroud)

我希望能够在向PHP程序发出请求之前确定模态的大小(实际宽度),以便在显示模式之前显示一些动态内容.有谁知道如何获取这些信息?

javascript php twitter-bootstrap-3

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

javascript null比较不同的chrome和firefox

我有以下代码:

var a=sessionStorage.getItem("Token");  
alert(a==null);
Run Code Online (Sandbox Code Playgroud)

返回的值是null(如果我alert(a)显示null).问题是alert(a==null)firefox上的显示为TRUE,safari和chrome上的显示为FALSE.WTH?我尝试a===null过同样的结果以及!a.

我做错了什么或者我不知道什么?

谢谢你的帮助.

javascript session-storage

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