问题列表 - 第21858页

将按钮添加为子视图时,为什么会出现内存泄漏?

我有一个使用tableview的应用程序,以及我作为子视图添加到每个自定义单元格的UIButton,如下所示:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];

    checkButton = [[UIButton buttonWithType:UIButtonTypeCustom] initWithFrame:CGRectMake(2.0, 2.0, 40.0, 40.0)];
    [cell.contentView addSubview:checkButton];

    // lot's of other code

    return cell;
}
Run Code Online (Sandbox Code Playgroud)

我认为一切都很好,直到我开始使用Instruments来确保我没有任何内存泄漏,但我发现将UIButton添加为单元格的子视图就像在某种程度上导致UIKit内部泄漏.

具体来说,我得到每个单元格行的内存泄漏(每次按钮被添加为子视图),泄漏的对象是"CALayer",负责框架为" - [UIView _createLayerWithFrame:]".

我在这里做错了吗?

iphone instruments uibutton uitableview uikit

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

在代码中创建测试数据

我正在编写一个导出函数来从数据库表中获取数据并导出到文本.在我将代码插入应用程序的其余部分之前,我想根据c#中创建的随机数据测试导出.我在SO中发现了许多关于在数据库中创建测试数据但没有直接在代码中创建的示例.有没有人有一个例子或知道一个链接?

谢谢

c#

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

使用Cocoa减少图像字节大小

我有一个1600x1600 1.2MB的图像,其大小调整为320x320缩小到404KB.我需要进一步减少字节大小而不减少图像宽高比.

目前我正在使用 - TIFFRepresentationUsingCompression:factor:NSImage方法NSTIFFCompressionJPEG和因素似乎不影响图像大小/质量.

我怎么解决?

马尔科

cocoa objective-c

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

如何检索COM类的接口ID,以便将其传递给CoCreateInstance?

我想以编程方式检索任何类的接口ID,以便将其传递给CoCreateInstance.很感谢任何形式的帮助!!

请参阅下面的"我如何获得此":

HRESULT hResult;
CLSID ClassID;
void *pInterface;

if(!(hResult = SUCCEEDED(CoInitialize(NULL))))
{
    return 1;
}

if(S_OK == CLSIDFromProgID(OLESTR("Scripting.FileSystemObject"), &ClassID))
{
    hResult = CoCreateInstance(ClassID, NULL, CLSCTX_INPROC_SERVER,
        <<How Do I Get This?>>, (LPVOID *)&pInterface);
}

CoUninitialize();
Run Code Online (Sandbox Code Playgroud)

编辑:感谢所有的帮助,现在似乎完美的工作!:

HRESULT hResult;
CLSID ClassID;
IClassFactory *pClf;
void *pVdb;

if(!(hResult = SUCCEEDED(CoInitialize(NULL))))
{
    return 1;
}

if(SUCCEEDED(CLSIDFromProgID(OLESTR("Scripting.FileSystemObject"), &ClassID))
{
    IDispatch *pDispatch;

    if(SUCCEEDED(CoCreateInstance(ClassID, NULL, CLSCTX_INPROC_SERVER,
            IID_IDispatch, (void **)&pDispatch))
    {
        OLECHAR *sMember = L"FileExists";

        DISPID idFileExists;

        if(SUCCEEDED(pDispatch->GetIDsOfNames(
                IID_NULL, &sMember, 1, LOCALE_SYSTEM_DEFAULT, &idFileExists))
        {
            unsigned int puArgErr = 0; …
Run Code Online (Sandbox Code Playgroud)

c++ windows com

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

数据库的自动主键生成功能是否可靠?

我开发了一个Web应用程序,各种客户端可以同时将记录存储到该数据库.

我已设置该数据库的自动主键生成功能,只要将新记录添加到数据库,该功能就会自动生成主键(自动注册).

所以我的问题是我可以依靠这种自动密钥生成功能吗?

如果各种用户同时存储记录会不会有问题?

sql database

7
推荐指数
2
解决办法
510
查看次数

jsf消息严重性

如何使用SEVERITY获取所有消息仅为ERROR.我试过了:

Iterator<FacesMessage> messages = facesContext.getMessages(clientId);
while (messages.hasNext()){
    if(messages.next().getSeverity().toString()=="ERROR 2")System.out.println(messages);
}
Run Code Online (Sandbox Code Playgroud)

这是对的吗?它不会拦截ERROR严重性的消息.

任何帮助将受到高度赞赏.

jsf messages

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

ServletRequest的getRemoteHost()和getServerName()之间有什么区别

javadoc对我来说有点混乱,在我的本地测试中,它们似乎都返回了相同的东西.我在这里错过了什么?

java servlets

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

是否有可能检测到何时在VS IDE中构建?

我添加了一个额外的构建步骤,以便我可以将mspec与teamcity集成.但是,当我在IDE中构建时,我不想运行它,因为它会延长构建时间.有没有我可以检测我是否从IDE构建并且不执行此特定目标?这就是我到目前为止所拥有的.

<Target Name="RunSpecs">
    <PropertyGroup>
        <AdditionalSettings>--teamcity</AdditionalSettings>
        <MSpecCommand>..\Lib\mspec\mspec.exe $(AdditionalSettings) "$(TargetDir)$(AssemblyName).dll"</MSpecCommand>
    </PropertyGroup>
    <Message Importance="high" Text="Running Specs with this command: $(MSpecCommand)" />
    <Exec Command="$(MSpecCommand)" IgnoreExitCode="true" />
</Target>
<Target Name="AfterBuild" DependsOnTargets="RunSpecs" />
Run Code Online (Sandbox Code Playgroud)

简单的解决方案是添加另一个构建配置,但我不想这样做.

将TeamCity输出转储到输出窗口也有点烦人.:)

msbuild visual-studio

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

'reg'不被识别为内部或外部命令,可操作程序或批处理文件

我正在服务器上运行批处理文件命令,该服务器使用reg查询来查找机器的进程_architecture(AMD64或x86).

我收到这个错误,有谁知道可能是什么问题.在该特定服务器上运行此命令之前,必须首先检查所有内容.

这是命令:

reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE.
Run Code Online (Sandbox Code Playgroud)

我不知道这是否有帮助.但操作系统是服务器上的W2k Advances SP 4.

configuration command-line batch-file

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

在ASP.NET MVC中的控制器之外创建ViewResults

我的一些控制器操作具有一组标准的故障处理行为.一般来说,我想:

  • 根据路径数据(ID等)加载对象
    • 如果Route Data未指向有效对象(例如:通过URL hacking),则通知用户该问题并返回HTTP 404 Not Found
  • 验证当前用户是否具有该对象的适当权限
    • 如果用户没有权限,请通知用户该问题并返回HTTP 403 Forbidden
  • 如果上述内容成功,则使用特定于操作的对象执行某些操作(即:在视图中呈现它).

这些步骤是如此标准化,我希望有可重用的代码来实现该行为.

我目前的攻击计划是使用辅助方法来执行以下操作:

public static ActionResult HandleMyObject(this Controller controller, 
    Func<MyObject,ActionResult> onSuccess) {
  var myObject = MyObject.LoadFrom(controller.RouteData).
  if ( myObject == null ) return NotFound(controller);
  if ( myObject.IsNotAllowed(controller.User)) return NotAllowed(controller);
  return onSuccess(myObject);
}

# NotAllowed() is pretty much the same as this
public static NotFound(Controller controller){
    controller.HttpContext.Response.StatusCode = 404
    # NotFound.aspx is a shared view.
    ViewResult result = controller.View("NotFound");
    return result;
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是Controller.View()是一个受保护的方法,因此无法从帮助程序访问.我已经看过明确地创建一个新的ViewResult实例,但是有足够的属性来设置我在不知道陷阱的情况下这么做是很谨慎.

从特定控制器外部创建ViewResult的最佳方法是什么?

asp.net-mvc controller

10
推荐指数
2
解决办法
9798
查看次数