相关疑难解决方法(0)

从NSData对象在Swift中创建一个数组

我试图在swift中将一个整数数组存储到磁盘.我可以将它们放入要存储的NSData对象中,但是将它们放回到数组中是很困难的.我可以获得原始COpaquePointer的数据data.bytes但无法找到一种方法来使用该指针初始化一个新的swift数组.有谁知道怎么做?

import Foundation

var arr : UInt32[] = [32,4,123,4,5,2];

let data = NSData(bytes: arr, length: arr.count * sizeof(UInt32))

println(data)  //data looks good in the inspector

// now get it back into an array?
Run Code Online (Sandbox Code Playgroud)

arrays nsdata ios swift

34
推荐指数
2
解决办法
4万
查看次数

如何在swift中获取IP地址

我如何获得我的本地IpAddress?

我试着用这个Obj C例子:如何以编程方式获取iphone的ip地址

当我进入该功能时,getifaddrs()我无法进一步.我无法使用该功能.

有没有其他方法可以做到这一点,或者我是以错误的方式接近这个?

ip macos networking swift

24
推荐指数
1
解决办法
3万
查看次数

如何在iOS上执行DNS查询

我想执行一些DNS查询,例如获取针对特定域名的IP记录,我在iOS 3.2+ SDK上寻找一种首选方式或一些有用的代码片段.提前

从其他片段开始,我发现了这段代码

 Boolean result;
 CFHostRef hostRef;
 NSArray *addresses;
 NSString *hostname = @"apple.com";
 hostRef = CFHostCreateWithName(kCFAllocatorDefault, (CFStringRef)hostname);
 if (hostRef) {
      result = CFHostStartInfoResolution(hostRef, kCFHostAddresses, NULL); // pass an error instead of NULL here to find out why it failed
      if (result == TRUE) {
           addresses = (NSArray*)CFHostGetAddressing(hostRef, &result);
      }
 }
 if (result == TRUE) {
      [addresses enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
             NSString *strDNS = [NSString stringWithUTF8String:inet_ntoa(*((struct in_addr *)obj))];
           NSLog(@"Resolved %d->%@", idx, strDNS);
      }];

 } else {
      NSLog(@"Not …
Run Code Online (Sandbox Code Playgroud)

iphone ipad ios

15
推荐指数
2
解决办法
2万
查看次数

在swift中将NSData转换为sockaddr结构

我正在尝试在swift中进行简单的DNS查找.到目前为止,这是我的代码:

let hostRef = CFHostCreateWithName(kCFAllocatorDefault, "google.com").takeRetainedValue()
var resolved = CFHostStartInfoResolution(hostRef, CFHostInfoType.Addresses, nil)
let addresses = CFHostGetAddressing(hostRef, &resolved).takeRetainedValue() as NSArray
Run Code Online (Sandbox Code Playgroud)

此时,"地址"NSArray中的每个元素都是一个包装sockaddr结构的CFDataRef对象.

由于CFDataRef可以免费桥接到NSData,我可以像这样循环遍历它们:

for address: AnyObject in addresses {
  println(address)  // address is of type NSData.
}
Run Code Online (Sandbox Code Playgroud)

到目前为止这么好(我想).当我在单元测试中运行时,这会打印出有效的数据.这是我陷入困境的地方.对于我的生活,我无法弄清楚如何将NSData对象中的字节转换为sockaddr结构.

如何将address.bytes(类型为COpaquePointer?)转换为ac结构?任何帮助赞赏.我正试图弄清楚我的头撞墙.

core-foundation ios swift

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

标签 统计

ios ×3

swift ×3

arrays ×1

core-foundation ×1

ip ×1

ipad ×1

iphone ×1

macos ×1

networking ×1

nsdata ×1