问题列表 - 第45753页

在iOS中通过HTTP获取图像时不断增长的内存分配

我正在实现一个需要通过HTTP获取大量图像的iOS应用程序.我已经尝试了几种方法但独立完成了我的工作,Instuments显示不断增加的内存分配,并且当我在设备上运行它时,应用程序迟早会崩溃.仪器没有泄漏.

到目前为止,我尝试了以下方法:

  • 在NSOperation中使用同步NSURLConnection获取图像
  • 在NSOperation中使用异步NSURLConnection获取图像
  • 使用Main-Thread中的[NSData dataWithContentsOfURL:url]获取图像
  • 在NSOperation中使用同步ASIHTTPRequest获取图像
  • 使用异步ASIHTTPRequest获取图像并将其添加到NSOperationQueue
  • 使用异步ASIHTTPRequest和使用completionBlock获取图像

Instrumetns中的调用树显示在处理HTTP响应时消耗了内存.在异步NSURLConnection的情况下,这是

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[receivedData appendData:data];
}  
Run Code Online (Sandbox Code Playgroud)

在同步NSURLConnection的情况下,Instruments显示了不断增长的CFData(商店)条目.ASIHTTPRequest的问题似乎与类似代码位置中的异步NSURLConnection相同.[NSData dataWithContentsOfURL:url]方法在exactely该语句中显示了越来越多的总内存分配.

当请求在一个单独的线程中完成时,我正在使用NSAutoReleasePool,我试图用[[NSURLCache sharedURLCache] removeAllCachedResponses]释放内存 - 没有成功.

有什么想法/提示来解决问题吗?谢谢.

编辑: 如果我使用CoreData持久保存图像,则仅显示该行为.这是我作为NSInvocationOperation运行的代码:

-(void) _fetchAndSave:(NSString*) imageId {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSString *url = [NSString stringWithFormat:@"%@%@", kImageUrl, imageId];
HTTPResponse *response = [SimpleHTTPClient GET:url headerOrNil:nil];
NSData *data = [response payload];

if(data && [data length] > 0) {
    UIImage *thumbnailImage = [UIImage imageWithData:data];
    NSData *thumbnailData = UIImageJPEGRepresentation([thumbnailImage scaleToSize:CGSizeMake(55, 53)], 0.5); // UIImagePNGRepresentation(thumbnail); 

    [self performSelectorOnMainThread:@selector(_save:) …
Run Code Online (Sandbox Code Playgroud)

memory objective-c nsoperation nsurlrequest ios

14
推荐指数
2
解决办法
5014
查看次数

在处理输入和输出时会有什么"更快"?

要求用户输入的简单程序可以使用datainputstream或扫描仪.哪个会更快?Datainputstream是二进制的,所以它可能更快?是在意见吗?我只是好奇,因为我正在构建一个我希望尽可能高效的程序.

java io performance

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

jQuery $(this)语法问题

这是一个有效的选择器吗?如果没有,那么正确的方法是什么?

$($(this)+' childElement')....
Run Code Online (Sandbox Code Playgroud)

jquery this

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

以zend形式输入类似name ="person []"的数组

在普通的html中,我们可以有一个数组字段 person[]

<input name="person[]" type="text" />
<input name="person[]" type="text" />
<input name="person[]" type="text" />
Run Code Online (Sandbox Code Playgroud)

据我所知,Zend_Form没有那个.我读了另一个答案,建议可以使用装饰器来完成,它会[]在正确的位置添加.这是该特定问题的代码

$html = ''; // some code html
$i = 0;
foreach ($element->getMultiOptions() as $value => $label){
    $html .= '<input type="checkbox" '
          .         'name="'.$element->getName().'[]" '
          .         'id="'$element->getName()'-'.$i.'" '
          .         'value="'.$value.'" />';
    $i++;
}
return $html;
Run Code Online (Sandbox Code Playgroud)

这看起来是一个好的开始,但我想知道使用装饰器是否足够.返回的值必须正确读取并传递到服务器,然后在服务器端验证.装饰者的想法是错误的吗?自定义元素会更有意义吗?我还没有看到一个很好的例子来说明如何做到这一点.

php zend-framework zend-form

8
推荐指数
1
解决办法
7454
查看次数

如何在Eclipse中为Java文本编辑器更改字体大小?

我刚刚尝试通过以下方式在Eclipse 3.6.0中更改字体大小:

常规→外观→颜色和字体→Java编辑器文本字体

但是,字体大小仅在我打开的文件中更改.如何更改我在Eclipse中打开的所有Java文件和项目的字体大小?

java eclipse fonts font-size

423
推荐指数
10
解决办法
55万
查看次数

.NET - 将语句lambda body转换为字符串

给出以下语句lambda示例:

var fMyAction = new Action(() =>
 {
    x += 2;
    something = what + ever; 
 });
Run Code Online (Sandbox Code Playgroud)

有什么方法可以获得lambda的主体并将其转换为字符串?(最终会允许为Action这种类编写扩展方法的东西:fMyAction.Dump()将返回"x += 2; something = what + ever;").

谢谢

.net c# lambda

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

C++中的条件运算符"?:"

为什么这句话:

int a = 7, b = 8, c = 0;
c = b > a? a > b? a++: b++: a++ ? b++:a--;
cout << c;
Run Code Online (Sandbox Code Playgroud)

不等于:

int a = 7, b = 8, c = 0;
c = (b > a? (a > b? a++: b++): a++)? b++: a--;
cout << c;
Run Code Online (Sandbox Code Playgroud)

并且等于:

int a = 7, b = 8, c = 0;
c = b > a? (a > b? a++: b++): (a++? b++: a--);
cout << …
Run Code Online (Sandbox Code Playgroud)

c++ ternary-operator

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

为什么F5在Visual Studio中执行之前不重建项目?

如果我按下F5,我的项目会运行,但它不会"看到"我所做的任何更改.在按下F5它之前我需要手动(重新)构建.

它之前运作良好.知道我需要改变什么吗?

build visual-studio-2010 visual-studio

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

从MVC中的控制器确定局部视图的模型

我目前的问题是我有一个局部视图,我想确定它正在使用什么模型.

我不得不为我的项目处理一些奇怪的场景,所以我将尝试在这里概述它,也许有人可以提供更好的方法来做到这一点.

我正在设计类似Google iGoogle页面的内容.具有多个小部件的主页面,可以根据需要移动或配置.当前系统加载实际窗口小部件的数据异步查看应用程序中的控制器的POST.该控制器将呈现可以返回的HTML的部分视图(然后加载到页面视图JQUERY中)或者只是存储在数据库中的直接HTML/JavaScript.

这对我来说很好,我有一个小部件模型,它包含通过数据库描述的选项字典,然后由部分视图使用.当我想将数据传递到局部视图时,问题出现了.我能想出的最佳解决方案是让控制器确定所讨论的局部视图使用哪个模型,使用一些函数填充模型,然后将其与局部视图一起传递给将其渲染到的函数控制器内的HTML.

我意识到这对于MVC来说是一个奇怪的场景(层正在混合......),任何关于基础设计的建议,或者对它的实现都将非常感激.

我目前正在使用MVC3/Razor.随意提出任何其他问题.

model-view-controller asp.net-mvc asp.net-mvc-3

18
推荐指数
1
解决办法
6358
查看次数

我可以在MySQL 5的SQL查询中使用多少绑定变量?

我在MySQL 5的查询中可以使用的绑定变量数是否有限制?我认为有,但我在参考手册或谷歌搜索中找不到任何信息.

我能找到的唯一提供任何信息的东西都在C API参考中:http://dev.mysql.com/doc/refman/5.0/en/mysql-stmt-bind-result.html

这似乎意味着记忆是唯一的限制,但这似乎有点怀疑.

更新:有一个限制!

runner.rb:47: data_replicator.rb:312:in `prepare': Prepared statement contains too many placeholders (Mysql::Error)
        from data_replicator.rb:312:in `set_statement_handle_for'
        from data_replicator.rb:287:in `log_query'
        from data_replicator.rb:221:in `replicate_table'
        from data_replicator.rb:93:in `replicate'
        from data_replicator.rb:20:in `run'
Run Code Online (Sandbox Code Playgroud)

这给了我一些更好的搜索!

mysql

6
推荐指数
3
解决办法
5700
查看次数