小编Jus*_*cle的帖子

为什么这个属性需要'保留'?

给定具有retain属性的类的以下定义:

@interface FeedEntry : NSObject<NSCoding>
{
    NSURL*  url;
    NSData* source;
}

@property (retain) NSURL*   url;
@property (retain) NSData*  source;
@end

@implementation FeedEntry

@synthesize url;
@synthesize source;

-(void)encodeWithCoder:(NSCoder*)coder
{
    [coder encodeObject:url     forKey:@"url"];
    [coder encodeObject:source  forKey:@"source"];
}
Run Code Online (Sandbox Code Playgroud)

为什么initWithCoder方法中的url属性需要"retain":

-(id)initWithCoder:(NSCoder*)coder
{
    url = [[coder decodeObjectForKey:@"url"] retain];
    source  = [coder decodeObjectForKey:@"source"];

    NSLog(@"got url=%@\n", url);
    return self;
}
Run Code Online (Sandbox Code Playgroud)

具体来说,为什么合成的"获取url"方法不能保留对象?(我猜测源属性也需要保留).

cocoa objective-c

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

Mac上的SSE4.1内在函数编译错误

我在硬件上使用SSE4.1内在函数时遇到了一些麻烦(我认为)支持它.谁能告诉我,如果我错过了什么?

在MacBookPro5,4(Penryn)上构建以下代码:

>g++ -msse sse4.cpp -S -o sse4.asm

#include <stdio.h>
#include <smmintrin.h>

int main ()
{
    __m128 a, b;
    const int mask = 0x55;

    a.m128_f32[0] = 1.5;
    a.m128_f32[1] = 10.25;
    a.m128_f32[2] = -11.0625;
    a.m128_f32[3] = 81.0;
    b.m128_f32[0] = -1.5;
    b.m128_f32[1] = 3.125;
    b.m128_f32[2] = -50.5;
    b.m128_f32[3] = 100.0;

    __m128 res = _mm_dp_ps(a, b, mask);

    printf_s("Original a: %f\t%f\t%f\t%f\nOriginal b: %f\t%f\t%f\t%f\n",
                a.m128_f32[0], a.m128_f32[1], a.m128_f32[2], a.m128_f32[3],
                b.m128_f32[0], b.m128_f32[1], b.m128_f32[2], b.m128_f32[3]);
    printf_s("Result res: %f\t%f\t%f\t%f\n",
                res.m128_f32[0], res.m128_f32[1], res.m128_f32[2], res.m128_f32[3]);

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

生成以下错误:

/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/smmintrin.h:35:3: error: …
Run Code Online (Sandbox Code Playgroud)

gcc sse intrinsics

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

如何使用 gcc 的内联报告 (-Winline)

在我的项目上启用-Winline会产生大量我不太理解的输出。有谁知道如何使用此输出来找出为什么我的特定函数没有内联?

c c++ gcc inline

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

LD_PRELOAD和某些可执行文件的calloc()插入问题

之前的一个问题有关

我已成功插入malloc,但calloc似乎更成问题.

对于某些主机而言,calloc内部可能存在内部calloc调用,陷入无限循环dlsym.但是,基本测试主机不会出现此行为,但我的系统的"ls"命令会出现此行为.

这是我的代码:

// build with: g++ -O2 -Wall -fPIC -ldl -o libnano.so -shared Main.cc
#include <stdio.h>
#include <dlfcn.h>

bool gNanoUp = false;// global

// Function types
typedef void* (*MallocFn)(size_t size);
typedef void* (*CallocFn)(size_t elements, size_t size);

struct MemoryFunctions {
    MallocFn   mMalloc;
    CallocFn   mCalloc;
};

MemoryFunctions orgMemFuncs;

// Save original methods.
void __attribute__((constructor)) __nano_init(void) {
    fprintf(stderr, "NANO: init()\n");

    // Get address of original functions
    orgMemFuncs.mMalloc = …
Run Code Online (Sandbox Code Playgroud)

c++ malloc free dynamic-linking ld-preload

5
推荐指数
2
解决办法
3007
查看次数

如何确定 Windows 10 上可执行二进制文件的体系结构

鉴于Random.exeWindows 上的一些,我如何确定

  1. 它的 CPU 架构,例如 Intel/ARM,以及
  2. 它的位数,例如 32 或 64。

我可以使用文件资源管理器、其他工具或编程方法中的属性吗?

windows cpu-architecture identification portable-executable

5
推荐指数
3
解决办法
4446
查看次数

如何以编程方式在大型Linux应用程序中"拉网线"?

我在Linux上有一个大型的C++应用程序,它构建并链接了许多第一方和第三方库.

应用程序的某些部分应该在不访问文件系统或网络的情况下执行(特别是加载网络文件).我们经常发现这个操作确实通常由于程序员错误而加载文件.

如何在代码中强制执行此操作?例如:

try {
  lockFileSystem();
  Application->DoImportantOperation();
  unlockFileSystem();
} catch ( InvalidFileSystemAccess )
{ 
 // bad programmer, no pizza
}
Run Code Online (Sandbox Code Playgroud)

或者是否存在某种较低级别的回调,应用程序可以在打开文件时挂钩?

注意我知道strace非常棒,但是它已经达到了需要在应用程序执行过程中强制执行的程度,而不是作为事后手动测试.

c++ linux filesystems networking

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

iPhone/iPod文件系统速度

有没有人有分析iPhone/iPod文件系统的硬数据?我对阅读比写作更感兴趣.

我正在考虑进行一些测试,但我想我会检查一下是否有人更聪明和/或时间更充裕.

具体来说,我对许多小文件与较少大文件之间的速度差异以及各代iP*设备之间的差异感兴趣.

另一个问题是读取文件的ZIP压缩是否值得权衡解压缩,或者数据大小是否存在"收支平衡"点.

filesystems iphone profiling

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

如何在Windows上检测OpenGL的硬件加速

是否有Win32 API调用来检测用户系统的当前硬件加速级别?我不需要更改设置,但是如果禁用了硬件加速,我想缩小OpenGL显示的细节级别。

hardware opengl acceleration

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

目标名称的Xcode/GCC预定义宏?

我想知道是否有一个Xcode或GCC预处理器符号用于应用程序的目标名称.

例如,如果我正在构建一个名为"MonkeyChicken"的应用程序,那么是否存在预处理器符号

printf( __TARGET_NAME__ )
Run Code Online (Sandbox Code Playgroud)

输出:

MonkeyChicken
Run Code Online (Sandbox Code Playgroud)

macros xcode gcc c-preprocessor

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

如何编写指向std :: cerr的指针?

鉴于:

MY_CLASS* ptr = MY_CLASS::GetSomeInstance();
Run Code Online (Sandbox Code Playgroud)

什么是正确的方式输出ptrstd::cerr,所以我可以登录它的价值?注意我不想写类,只是地址.

c++ pointers iostream stderr

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