小编Dan*_*ark的帖子

发现TCP/IP套接字?

我正在使用Objective-C和Java,但我认为这个问题与语言无关.

我有一个iOS客户端通过TCP/IP与Java服务器通信.现在我需要告诉至少一方当事人的IP地址.有没有一种标准方式可以"发现"IP地址(从一方或另一方)?

此外,如何切换到UDP会影响答案?

sockets udp tcp-ip

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

Objective-C中的DRY元代码

我在Objective-C中遇到过这种情况:

[aCoder encodeObject:self.control forKey:@"control"];
[aCoder encodeObject:self.command forKey:@"command"];
[aCoder encodeObject:self.channel forKey:@"channel"];
[aCoder encodeObject:self.data1 forKey:@"data1"];
Run Code Online (Sandbox Code Playgroud)

在Ruby或Groovy中,我可以用块来做这个,并且只需要一点点就可以有一行而不是四行.我知道Objective-C有很多动态特性.如何提取这些代码?

dry objective-c

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

iPhone应用程序终止时调用什么方法?

我正在为iPhone制作客户端服务器应用程序,并希望知道在iPhone应用程序终止时调用哪个方法.任何帮助,将不胜感激.

objective-c ios

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

如何获取访问方法的线程?

我正在研究一个锁类,以了解有关并发性的更多信息.我想要做的是创建一个排队锁.线程调用lock,被添加到队列中,当释放锁并且线程首先在队列中时,它将能够继续.

我想知道的是:有没有办法可以获取当前运行锁码的线程,还是必须将线程对象作为参数传递给锁?

java concurrency multithreading

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

获取canvas对象的这两种方法有什么区别

canvas = $('#canvasID');

canvas = document.getElementById('canvasID');
Run Code Online (Sandbox Code Playgroud)

有什么不同?canvas.offset()当我通过第二种方式获得画布对象时,为什么我不能使用?

html javascript jquery canvas

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

Objective-C变得更自由吗?非属性的点表示法

我注意到我可以在iOS 5 beta/XCode 4.2 beta中使用点表示法,即使对于非属性的方法也是如此,例如Singleton.instance方法签名时+ (Singleton*) instance.如果我没记错的话,我不能在XCode 4.1中这样做.

  1. 这真的改变了,还是我疯了?
  2. 如果它已经改变,那么记录的变化在哪里?

ios xcode4.2

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

这样安全吗?单身作为自我在块中的可能保留周期

我很确定这是100%安全的,但我不想错过任何东西.我有以下代码

- (void) scheduleControlSurfaceProcess {
    [self.operationQueueForMessageProcessing addOperationWithBlock:^{
        // do something
        [self scheduleControlSurfaceProcess];     
    }];
}
Run Code Online (Sandbox Code Playgroud)

自我是单身人士.该块作为非主线程线程非常出色.我没有在profiler中看到任何内存问题(我不太相信).

那么,我可以忽略这个警告,"Block会被捕获对象强烈保留的对象保留吗?" 如果没有,我怎么能坚持要释放块(用ARC)?让警告消失很容易,但分配id what = self似乎无法解决问题.

编辑:正如我在这个问题中意识到的那么晚,这里真正的问题是我从块内部重新安排.这显然是有问题的,因为每个块保留下一个.

注意:我知道关于这个主题很多问题,但我不够专业,不知道哪个情况与此类似.

nsoperationqueue ios objective-c-blocks automatic-ref-counting

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

Objective-C中的Autobox TypeDefs(LLVM 4+)

我有这种类型的Enum与TypeDef:

typedef enum {
    ControlDisplayOptionNone = 0,
    ControlDisplayOptionOne = 100
} ControlDisplayOption;
Run Code Online (Sandbox Code Playgroud)

而且我希望能够将它们放在这样的数组中:

- (NSArray *)displayOptions {
    return @[@ControlDisplayOptionNone];
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用,即使这样也行不通:

NSNumber *test = @ControlDisplayOptionNone;
Run Code Online (Sandbox Code Playgroud)

唯一可行的选择是传统的:

return @[[NSNumber numberWithInt:ControlDisplayOptionNone]];
Run Code Online (Sandbox Code Playgroud)

有没有办法使用自动装箱?

autoboxing objective-c

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

UnsafeMutablePointer <UInt8>:风险是什么?

我在Objective-C库的回调中收到了其中一个: UnsafeMutablePointer<UInt8>

我能够解析它.我也可以创建一个将它发送回图书馆,但是:使用"不安全"类型有什么风险?我该如何避免这些风险?

另外,Objective-C库正在使用uint8_t *与Swift的桥接器UnsafeMutablePointer<UInt8>......这对于Swift互操作来说是最好的吗?

unsafe-pointers swift

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

通用类型“UnsafeMutablePointer&lt;UInt8&gt;”的扩展

我想创建一个UnsafeMutablePointer仅影响的扩展UnsafeMutablePointer<UInt8>......

\n\n

我知道这些说明是相关的,但我不确定如何:

\n\n
\n

扩展泛型类型时,不提供类型参数列表作为扩展\xe2\x80\x99s 定义的一部分。相反,原始类型定义中的类型参数列表在扩展主体中可用,并且原始类型参数名称用于引用原始定义中的类型参数。

\n
\n\n

基本上,我正在尝试使用这种方法:

\n\n
func toSwift(length: Int) -> [Int] {\n    var retVal : [Int] = []\n    for i in 0..<length {\n        retVal.append(Int(self[i]))\n    }\n    return retVal\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

采取行动,self无需UnsafeMutablePointer<UInt8>...这可能吗?

\n

generics unsafe-pointers swift

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