如果我需要Swift中的自定义类型,我可以typedef
,我该怎么做?(类似于闭包语法typedef)
今天的扩展程序没有出现在Swift应用程序中,但它在Objective C应用程序中出现.
我所做的是在故事板上为快速和客观的c应用添加一些带有一些内容的UILabel.
它出现在我运行Objective C应用程序时,但不是在我执行Swift应用程序时.
我在这里错过了什么吗?
var session = NSURLSession.sharedSession()
session.dataTaskWithRequest(urlRequest,
completionHandler: {(data: NSData!,
response: NSURLResponse!,
error: NSError!) in
println(data)
println(response)
println(error)
})
Run Code Online (Sandbox Code Playgroud)
所以我正在发出这个请求,永远不会调用完成块.
怎么了?
此外,我尝试了synchronous and asynchronous form
同样的请求,NSURLConnection
它工作得很好.
编辑:
我尝试将dataTask
变量分配给session.dataTaskWithRequest
并在之后显示.它说这个<__NSCFLocalDataTask: 0xb41bda0> { suspended }
暂停?为什么?
我试过的是: -
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[self.view addSubview:btn];
btn.translatesAutoresizingMaskIntoConstraints = NO;
[btn addTarget:self action:@selector(bringUpNextViewController:)
forControlEvents:UIControlEventTouchUpInside];
btn.titleLabel.font = [UIFont fontWithName:@"HelveticaNeue" size:14];
[btn setTitle:@"8" forState:UIControlStateNormal];
[self.view layoutIfNeeded];
NSLog(@"button size : %@", NSStringFromCGSize(btn.frame.size));
Run Code Online (Sandbox Code Playgroud)
作为输出,我得到这个:
button size : {30, 29}
Run Code Online (Sandbox Code Playgroud)
然后我给了setTitle
字符串什么都没有.按钮宽度仍为30.
那么为什么总是这样呢?
我也试过给一个high compression resistance priority
和high content hugging priority
.不缩减为零.
问题还在于我想简单地根据其内容减小按钮的宽度,而不给出任何固定的宽度.
我可以采用文本的宽度并给按钮宽度,但如果按钮占用内容宽度,我不应该这样做.
编辑:
它不是导致宽度的插入物30
.幽灵的价值.
我正在研究Perl的一些初级示例.
print "\n6 less than 7 and 7 greater than 2 : ", 6 < 7 and 7 > 2, "\n";
print ((3 + 2)/5), "\n";
Run Code Online (Sandbox Code Playgroud)
最后的新行没有发生.为什么?
ios8 ×3
swift ×2
autolayout ×1
ios ×1
macos ×1
newline ×1
nsurlsession ×1
perl ×1
typedef ×1
uibutton ×1