我想知道这个Multipeer Connectivity框架是否可以在现实世界中使用,考虑到社区遇到的所有错误.我认为我的设置正确,但我尝试过的所有其他示例项目都遇到了类似的问题.
我遇到的问题可能与Bonjour固有的某些问题有关,我无法弄清楚,但基本上问题如下:
MCSession和很多同行都很活跃.browser:lostPeer:为该对等方调用该方法并且不再在浏览器中显示为"附近" ,我也无法强制该用户离开.session:peer:didChangeState:不为该对等方调用该方法.browser:foundPeer:withDiscoveryInfo:但仍然存在于session.connectedPeersNSArray中.显然,他们仍然没有收到有关会话的任何数据或更新,实际上并没有连接.MCSessionStateNotConnected到会话的方法是将该对等体重新连接到原始会话.然后session:peer:didChangeState:对peerID的新实例所在的位置进行重复调用,并且在peerID MCSessionStateConnected的旧实例调用之后不久MCSessionStateNotConnected.示例聊天应用程序很好地演示了这个问题:https://developer.apple.com/library/ios/samplecode/MultipeerGroupChat/Introduction/Intro.html
由于似乎没有任何方法可以手动强制从会话中删除对等体,我该怎么办?我应该尝试以某种方式重建会话吗?
这个框架看起来有点混乱,但我试图保留判断力!
免责声明:这是一个很长的帖子,但对于那些使用新的ObjectiveC JavascriptCore框架并在ObjC和JS之间进行异步编码的人来说,这可能非常有价值.
大家好,我是Objective C的新手,我正在将一个javascript通信库集成到我的iOS应用程序中.
无论如何,我一直在尝试使用iOS7中引入的新ObjectiveC JavaScriptCore框架.它在很大程度上非常棒,尽管到目前为止记录很差.
混合语言惯例真的很奇怪,但在某些方面也有点解放.
我应该补充一点,我当然正在使用ARC,因此这有助于从Javascript世界中获得很多.但是在ObjectiveC和JSContext callBacks之间移动时,我有一个非常具体的内存使用问题.就像我在Javascript中执行一个函数,然后执行一些异步代码,然后回调到一个定义的ObjectiveC块,然后调用一个定义的JS回调......我只是想确保我做得对(即一些地方没有泄漏记忆)!
只是为了做正确的事情(因为我引用了一个类self来调用ObjectiveC callBacks我创建了一个weakSelf所以它对ARC很好用(从问题中引用:在这个块中强烈捕获self可能会导致保留周期):
__unsafe_unretained typeof(self) weakSelf = self;
Run Code Online (Sandbox Code Playgroud)
现在,说我有一个JSContext并添加一个功能.我希望这个函数接受一个callBack函数并以"Hello"作为参数调用它,并将另一个函数作为callBack传递.即.
// Add a new JSContext.
JSContext context = [[JSContext alloc] initWithVirtualMachine:[[JSVirtualMachine alloc] init]];
// Add a function to the context. This function takes a callBack function and calls it back with "Hello"
[context evaluateScript: @"var functionA = function(callBack){
var aMessage = "Foo";
callBack(aMessage, function(message){
/* message should say: Foo Bar */
});
}" …Run Code Online (Sandbox Code Playgroud) objective-c objective-c-blocks automatic-ref-counting javascriptcore ios7
我使用单个&符号在bash脚本中运行多个命令,如下所示:
commandA & commandB & commandC
Run Code Online (Sandbox Code Playgroud)
他们每个人都有自己的stdout输出,但他们都混合在一起,并在一个不连贯的混乱中淹没控制台.
我想知道是否有一种简单的方法将输出管道输入到他们自己的列中...使用column命令或类似的东西.即.就像是:
commandA | column -1 & commandB | column -2 & commandC | column -3
Run Code Online (Sandbox Code Playgroud)
这种事情的新手,但从最初的挖掘看起来似乎pr可能是票?还是column命令......?
当UITableViewRowAnimation删除一行或添加一行时使用 a时,有时如果该行位于 tableview 的极端,则表格会滚动。
然而,即使它滚动它似乎也没有调用scrollViewDidScroll:委托。
例如,我的委托中有以下代码。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
NSLog(@"Scrolling %f", scrollView.contentOffset.y);
}
Run Code Online (Sandbox Code Playgroud)
如果用户滚动,它会被调用。但是当我删除一行时:
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
Run Code Online (Sandbox Code Playgroud)
该scrollViewDidScroll:方法根本没有被调用。
有什么方法可以确保在UITableView动画时调用它吗?
谢谢!
如何将路由处理程序添加到已存在且已实例化的http 服务器?
我发现的所有路由器(包括express)似乎都要求将它们传递给http.createServer()方法.
例如用express:
var server = http.createServer(app);
Run Code Online (Sandbox Code Playgroud)
我的主要标准:
示例:将服务器传递给SockJS
var http_server = http.createServer(); // agnostic
sockjs_server.installHandlers(http_server, options);
http_server.listen(...);
Run Code Online (Sandbox Code Playgroud)
在sockjs源代码中完成的方式似乎相当神秘......但我认为它涉及遍历现有的处理程序并用自定义路由器/处理程序覆盖它们.
非常感谢您的帮助!
我一直在尝试新的Objective C JavascriptCore框架.
这很疯狂,但它似乎没有setTimeout或setInterval.哪个......我不明白.
我可以在Objective C中创建计时器,但我的大部分库都是用Javascript编写的,除此之外,看起来很奇怪没有setInterval或者setTimeout!!
我尝试了一些替代方法:
window.setInterval(function(){ /* dosomething */ }, 1000);
setInterval(function(){ /* dosomething */ }, 1000);
var interval;
interval = window.setInterval(function(){ /* dosomething */ }, 1000);
interval = setInterval(function(){ /* dosomething */ }, 1000);
Run Code Online (Sandbox Code Playgroud)
我无法监视JSVirtualMachine中甚至发生的事情.我所知道的是我的代码在setInterval被叫时停止工作.
任何帮助超级赞赏!
首先,我应该说我对C++编程很新(更不用说CUDA了),尽管这是我在大约184年前首次学到的东西.虽然我正在学习,但我会说我对内存分配和数据类型大小有点脱节.无论如何这里是:
我有一个具有3.0计算能力的GPU(这是一款Geforce 660 GTX w/2GB的DRAM).
在CUDA样本中找到./deviceQuery(以及我在网上找到的其他图表),列出了我的最大网格大小:
Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Run Code Online (Sandbox Code Playgroud)
在2,147,483,647(2 ^ 31-1),x维度是巨大的,有点不错......但是,当我运行我的代码时,在x维度上超过65535,事情变得......奇怪.
我使用了Udacity课程中的一个例子,并对其进行了修改以测试极端情况.我保持内核代码相当简单,以证明这一点:
__global__ void referr(long int *d_out, long int *d_in){
long int idx = blockIdx.x;
d_out[idx] = idx;
}
Run Code Online (Sandbox Code Playgroud)
请注意下面ARRAY_SIZE是网格的大小,但也是要进行操作的整数数组的大小.我将块的大小保持在1x1x1.只是为了理解这些限制,我知道只使用1个线程的块进行这么多操作是没有意义的,但我想了解网格大小限制发生了什么.
int main(int argc, char ** argv) {
const long int ARRAY_SIZE = 522744;
const long int ARRAY_BYTES = ARRAY_SIZE * sizeof(long int);
// generate the input array on the host
long int h_in[ARRAY_SIZE];
for (long int i = 0; …Run Code Online (Sandbox Code Playgroud) ios ×2
ios7 ×2
javascript ×2
objective-c ×2
bash ×1
c ×1
c++ ×1
cuda ×1
express ×1
iphone ×1
linux ×1
node.js ×1
routes ×1
session ×1
shell ×1
uiscrollview ×1
uitableview ×1