当我测试方法"retainCount"时,我遇到了一个问题,如下所示:
NSString *s_afmt0 = [[NSString alloc] initWithFormat:@""]; //-1
NSString *s_afmt1 = [[NSString alloc] initWithFormat:@"123"]; //1
NSLog(@"s_afmt0:%d", [s_afmt0 retainCount]);
NSLog(@"s_afmt1:%d", [s_afmt1 retainCount]);
Run Code Online (Sandbox Code Playgroud)
结果:s_autf0:-1 s_autf1:1我不知道为什么?为什么s_afmt0的retainCount为-1,而s_autf1的retainCount为1.为什么@""和@"123"之间有什么区别?谁能解释一下?谢谢
我的.pch文件:
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#improt "Constant.h" // here there is a error:
#endif
Run Code Online (Sandbox Code Playgroud)
line:#improt"Constant.h"获取错误
Invalid preprocessing directive
Run Code Online (Sandbox Code Playgroud)
有什么事?
代码如下:
#include <pthread.h>
#include <stdio.h>
void* fetch();
int main(int argc, char *argv[])
{
pthread_t tid;
pthread_create(&tid, NULL, &fetch, NULL);
}
void* fetch()
{
printf("start...\n");
int i;
for (i = 0; i < 100; i++)
{
printf("fetch...\n");
}
pthread_exit(0);
}
Run Code Online (Sandbox Code Playgroud)
为什么这段代码不能正常运行我运行它多次.救命!当我做$ gcc thread_test.c $./ a.out时它什么都没打印出来!当我运行它更多时间:
耶!打印出来:开始...取...
为什么?