在iOS5,似乎a的宽度UISwitch已经改变94px to 79px.我使用该组件的宽度来计算向右的方式,将其放在一个UITableViewCell.
有没有办法通过iOS API询问a的宽度UISwitch是什么,而不是将它添加到视图中?
我目前的想法是保持我已经知道的两个宽度定义,然后检查iOS版本,if >=5它应该是79px.但是,如果该组件的宽度有时会再次发生变化,那么这也行不通.
指定HTTP的RFC 2616表示 - 在6.1.1节中 - 状态行的那部分是3位数字状态代码和文本"原因短语".
我正在构建一个iPhone应用程序,即使用NSURLConnection通过HTTP访问数据.我可以毫无问题地获取HTTP状态代码,但是如何访问"原因短语"?
这是我的连接:didReceiveResponse:方法
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
httpStatusCode = [httpResponse statusCode];
// Reason Phrase ??
}
Run Code Online (Sandbox Code Playgroud)
具体而言,我并不是指"解释代码xxx的含义"文本.我可以在RFC中查找它,那些是静态的.我的意思是服务器在状态行中生成的文本.这种状态行的一个例子是:
HTTP/1.1 412 ClientAppVersion: 0.10 < 0.11
Run Code Online (Sandbox Code Playgroud)
原因短语在这里是"ClientAppVersion:0.10 <0.11".
这个例子也暗示了我想要做的事情.我正在构建类似REST的API,因此,我应该使用HTTP状态代码来指示错误.但是HTTP状态代码是针对HTTP而不是针对我的应用而发明的,所以我尝试将额外的信息填充到Reason Phrase中.
我在想,为什么这段代码:
NSArray *emptyArr = [[[NSArray alloc] init] autorelease];
NSArray *emptyArrA = [NSArray arrayWithArray:emptyArr];
NSArray *emptyArrB = [NSArray arrayWithArray:emptyArr];
NSLog(@"emptyArrA == emptyArrB => %d", (emptyArrA == emptyArrB));
NSLog(@"emptyArr == emptyArrB => %d", (emptyArr == emptyArrB));
NSLog(@"emptyArrA == emptyArr => %d", (emptyArrA == emptyArr));
Run Code Online (Sandbox Code Playgroud)
输出以下内容:
emptyArrA == emptyArrB => 1
emptyArr == emptyArrB => 1
emptyArrA == emptyArr => 1
Run Code Online (Sandbox Code Playgroud)
也就是说,这些物体似乎是不同的?嗯,我想,这必须是对不可变的空NSArray的特殊情况的iOS(或CoreFoundation?)优化,然后它总是解析为同一个对象实例.
但是......这段代码:
NSLog(@"emptyArr => %p", &emptyArr);
NSLog(@"emptyArrA => %p", &emptyArrA);
NSLog(@"emptyArrB => %p", &emptyArrB);
Run Code Online (Sandbox Code Playgroud)
输出(在我的机器上):
emptyArr => 0xbfffdd64
emptyArrA => 0xbfffdd60
emptyArrB …Run Code Online (Sandbox Code Playgroud)