我试图在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) 我如何获得我的本地IpAddress?
我试着用这个Obj C
例子:如何以编程方式获取iphone的ip地址
当我进入该功能时,getifaddrs()
我无法进一步.我无法使用该功能.
有没有其他方法可以做到这一点,或者我是以错误的方式接近这个?
我想执行一些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) 我正在尝试在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结构?任何帮助赞赏.我正试图弄清楚我的头撞墙.