小编joe*_*usp的帖子

"监狱已经初始化 - 返回"

最近,当我使用类似的东西时,我一直在控制台中看到这条消息

google.script.run.AppScriptFunctionThatIWrote();
Run Code Online (Sandbox Code Playgroud)

无论它做什么或返回什么,它总是打印

"监狱已经初始化 - 返回"

到浏览器控制台.起初,我认为这是一个错误,但它甚至打印在有效的代码上.它从昨天开始才出现,这让我感到震惊.在这一点上,我大多只是好奇.有谁知道它是什么?

google-apps google-apps-script

5
推荐指数
0
解决办法
299
查看次数

NSHashTable保留弱参考

那么,apple的[NSHashTable weakObjectsHashTable]状态文档:

返回一个新的哈希表,用于存储对其内容的弱引用.

所以,当我运行以下代码时......

NSHashTable *hashTable = [NSHashTable weakObjectsHashTable];
ABC *object = [[ABC alloc] init];
[hashTable addObject:object];
NSLog(@"%@", [hashTable anyObject]);
object = nil;
NSLog(@"%@", [hashTable anyObject]);
Run Code Online (Sandbox Code Playgroud)

输出是:

2017-09-18 12:57:02.801 Test2[6912:640614] <ABC: 0x608000014eb0>
2017-09-18 12:57:02.801 Test2[6912:640614] <ABC: 0x608000014eb0>
2017-09-18 12:57:02.803 Test2[6912:640614] dealloc // (dealloc of ABC)
Run Code Online (Sandbox Code Playgroud)

看起来调用NSLog(@"%@", [hashTable anyObject]);是保留对象.

如果我打电话,

NSHashTable *hashTable = [NSHashTable weakObjectsHashTable];
ABC *object = [[ABC alloc] init];
[hashTable addObject:object];
//NSLog(@"%@", [hashTable anyObject]);
object = nil;
NSLog(@"%@", [hashTable anyObject]);
Run Code Online (Sandbox Code Playgroud)

产量如预期:

2017-09-18 13:00:23.949 Test2[6936:645459] dealloc …
Run Code Online (Sandbox Code Playgroud)

objective-c ios automatic-ref-counting

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

c代码莫名其妙地跳过了行

当我因某种原因编译这个小程序时,"printf("done")"行没有执行,我无法弄清楚原因.在我的print语句之前最初有一个if块,而且还没有执行.我尝试通过gdb运行它并逐步完成它.它找到了该行,但它没有执行它.我正在尝试使用gcc 4.7.2编译它,我使用gedit 3.4.2作为我的文本编辑器.

这是我用来编译它的命令.

gcc teststuff.c -o test
Run Code Online (Sandbox Code Playgroud)

这是代码

#include <stdio.h>

void testmethod()
{

   int sign = 1;
   printf("hello\n");
   printf("%d\n",sign);


   printf("done");
}

main(void)
{
   testmethod();
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

任何人都有任何想法,为什么它跳过代码的这一部分?谢谢!

c gcc

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