小编cod*_*ons的帖子

目标C,关于引用计数的问题

 -(void)addNode{
       Node *node = [[Node alloc] init];
       [node fromBytes:nodeData];
       [neighborNodes addObject:[node retain]];
       [node release];
 }
Run Code Online (Sandbox Code Playgroud)

假设我有这样的方法.正在分配节点并将其添加到NSMutableArray(neighborNodes是NSMutableArray ..)我不确定此处是否需要[node retain]语句.我可以这样做吗?我把保留的话拿出来并没有释放节点..哪一个是正确的?提前致谢...

 -(void)addNode{
       Node *node = [[Node alloc] init];
       [node fromBytes:nodeData];
       [neighborNodes addObject:node];
 }
Run Code Online (Sandbox Code Playgroud)

objective-c

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

Objective-C,NSThread detach与performSelectorInBackground

这两者有什么不同?

 [NSThread detachNewThreadSelector:@selector(method) toTarget:self withObject:nil];
 [self performSelectorInBackground:@selector(method) withObject:nil];
Run Code Online (Sandbox Code Playgroud)

我通常使用第二种方法来生成一个新线程.但是我想知道如果我将这两次调用如下所示,那么将会发生什么?另外如果我有一个tabmenu并且每个菜单产生一个线程,那么我应该使用哪一个?

 [self performSelectorInBackground:@selector(method1) withObject:nil];
 [self performSelectorInBackground:@selector(method2) withObject:nil];
Run Code Online (Sandbox Code Playgroud)

multithreading objective-c nsthread

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

如何在C++中使用vector作为socket的输入缓冲区

我通常设置一个巨大的缓冲区并从套接字读取数据,我意识到这不是一个读取数据的好方法.

我曾经有类似的东西

int bufsize = 4096;
char *buf;
int recv = read(sock, buf, bufsize)
Run Code Online (Sandbox Code Playgroud)

我喜欢使用std :: vector来替换char缓冲区.我不确定这是更好的方法.

能否请您提供示例教程或示例?

提前致谢...

c++

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

目标C,NSSting与"alloc"和没有"alloc"的区别

 NSString *s1 = @"string1";
 // NSString *s2 = [[NSString alloc]stringWithFormat:@"string2"];
 NSString *s2 = [[NSString alloc] initWithFormat:@"string2"];
Run Code Online (Sandbox Code Playgroud)

我知道这是非常基本的概念,但我并不是100%清楚这一点.

第一个不分配内存地址,发送一个分配内存地址...第二个增加变量的引用计数但不增加第一个...尽管我理解这个概念但不知道情况当我应该使用第一个或第二个..

我什么时候应该使用第一个?还应该什么时候用于第二个?

提前致谢..

objective-c

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

目标C,我可以包括一个包吗?

我有超过50个标题包括..我可以用Java这样做(我可以使用"*")

 import micrograph.message.*;
Run Code Online (Sandbox Code Playgroud)

我可以在Objective C中做这样的事情吗?

objective-c

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

Java数学转换

我在C++中有这个代码

float result = -log(result)/0.5231-1.0;
Run Code Online (Sandbox Code Playgroud)

我把它转换成这样的Java代码

float result = (float) (-Math.log(result)/0.5231-1.0);
Run Code Online (Sandbox Code Playgroud)

这是转换c ++代码的正确方法吗?

c++ java

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

pthread在c ++中创建错误

可能重复:
来自类的pthread函数

我收到一个错误("无法转换....."),我认为pthread_create调用中的第三个参数是错误的.我知道第三个参数的类型应该是(void*)*(void*)但我仍然会收到错误.

void ServerManager::Init(){  
     pthread_t thread;
     pthread_create(&thread, NULL, AcceptLoop, (void *)this);
}
Run Code Online (Sandbox Code Playgroud)

我已经这样声明了,我试着调用下面的函数

void* ServerManager::AcceptLoop(void * delegate){

}
Run Code Online (Sandbox Code Playgroud)

请让我知道如何解决这个问题..

提前致谢.

c++ pthreads

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

如何通过TCP发送10,000~20,000字节的数据?

我可以通过TCP发送大约10,000~2,000字节的数据吗?我正在将图像(60 x 60)从Android客户端传输到linux服务器.在Android上似乎没问题.在服务器端,如果我尝试将图片数据发送回客户端,那么它不起作用.在客户端,如果我解析,那么我得到了一些我不应该得到的奇怪数字.

通过TCP传输大数据有任何技术问题吗?我该如何解决?提前致谢..

char* PictureResponsePacket::toByte(){

    /*
     * HEADER
     *
     * Magic number (4)
     * Data length  (4)
     * Packet Id    (2)
     * Packet type  (2)
     * Device Id    (48)
     *
     */

    /*
     * BODY
     *
     * Nickname  (48)
     * deviceId  (4)
     * m_pictureSize
     */

    int offset = 0;

    int headerLength = sizeof(int) + sizeof(int) + sizeof(short) + sizeof(short) + 48;
    int bodyLength = 48 + 4 + m_pictureSize;
    int dataLength = headerLength + bodyLength;
    m_dataLength = dataLength;

    log("PictureResponsePacket::toByte(), data …
Run Code Online (Sandbox Code Playgroud)

c++ tcp

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

如何在Ubuntu上安装TBB?

我从http://threadingbuildingblocks.org/ver.php?fid=174下载了tbb40_233oss_lin.tgz文件

我将"TBBROOT"变量设置为我的bash_proflie中的目录,然后解压缩tar文件并导航到bin文件夹并运行tbbvars.sh文件

我打字了

sh tbbvars.sh intel64
Run Code Online (Sandbox Code Playgroud)

我试图运行示例但它抱怨如图所示

count_strings.cpp:38:37: fatal error: tbb/concurrent_hash_map.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我尝试手动设置库路径并输入

g++ file.cpp -o output -L/path/to/the/lib/-ltbb
Run Code Online (Sandbox Code Playgroud)

但它仍然抱怨.

如何在Ubuntu上编译示例代码?

提前致谢.

tbb

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

Android模拟器缓存大小

我想知道如何在Android模拟器中指定缓存的大小?另外,我如何知道我的模拟器的缓存大小?

提前致谢.

android

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

使用deque与C库

可以说我有一个结构

struct s
{
     std::deque<Object> q; //won't work  with C library
}
Run Code Online (Sandbox Code Playgroud)

如果使用C库初始化带有std :: deque的结构,那么它将无法工作.

struct s
{
     std::vector<Object> v; //would work with C library
}
Run Code Online (Sandbox Code Playgroud)

但是,这个带有std :: vector的结构可以与C库一起使用.我认为这是因为双端队列中的元素不是连续的,而向量中的元素是连续的.我认为这可能是一个原因,但不确定.

c c++ stl vector deque

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

获取空向量的front()会产生意外行为

我有一个向量,其中包含一个类对象.我是这样宣布的

vector<Aircraft> queue;
Run Code Online (Sandbox Code Playgroud)

我擦除了向量中的第一个元素.但它似乎仍然是向量中的第一个元素.我这样做了

queue.erase(queue->begin());
cout<<queue.size(); //printed 0 
Aircraft temp = queue.front();
cout<<temp.id; //expected a segfault error
Run Code Online (Sandbox Code Playgroud)

擦除第一个元素后,向量的大小为0(只有一个元素).当我试图查看temp(飞机)的id时,我期待一个seg错误错误,因为我从矢量中删除了第一个元素,之后大小为零.我甚至清除了向量,但'queue.front '仍然返回对象,而cout语句仍然打印对象的id.

c++ stdvector

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

标签 统计

c++ ×6

objective-c ×4

android ×1

c ×1

deque ×1

java ×1

multithreading ×1

nsthread ×1

pthreads ×1

stdvector ×1

stl ×1

tbb ×1

tcp ×1

vector ×1