谷歌的文档说使用这种代码来确保新代码不会在旧平台上执行:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,Eclipse仍然给我警告:"调用需要API级别11(当前最小值为7)".我想要的是将我的最低版本设置为低于Honeycomb的值,让上述条件语句保护我不在旧设备上运行新代码,并且没有编译器警告.
我该怎么做?
如果我创建一个UILabel,一个UITextField和一个UITextView,然后将它们设置为具有相同的布局样式 - 例如,没有背景颜色,白色文本和大小为18的Courier字体 - UILabel和UITextField看起来相同,而UITextView看起来不一样 - 字体看起来更薄.
我拍了一个问题的屏幕截图,但我没有足够的声誉把它放在这里.所以,请点击此处查看我的示例
我很确定我在某处读过UITextView使用不同的字体渲染机制(CoreText,也许?),但不管它是什么,控件肯定看起来不一样.
那么,有没有什么方法可以使UITextViews像UITextFields/UILabels一样呈现它们的字体,反之亦然?
Facebook最近更新了Parse以支持Swift.它给出的代码示例之一是:
var gameScore = PFObject(className: "GameScore")
gameScore.setObject(1337, forKey: "score")
gameScore.setObject("Sean Plott", forKey: "playerName")
gameScore.saveInBackgroundWithBlock {
(success: Bool!, error: NSError!) -> Void in
if success {
NSLog("Object created with id: \(gameScore.objectId)")
} else {
NSLog("%@", error)
}
}
Run Code Online (Sandbox Code Playgroud)
我对这部分感到好奇:"(成功:Bool!,错误:NSError!)",特别是惊叹号.我对选项的理解是这样的:
NSError:这是一个NSError,不能为nil.NSError?:这可能包含NSError或者它可能是nil,但它需要先解包.NSError!:这是一个强制解包的NSError ?,因此不能为零.
Facebook的例子说成功是Bool!和错误是一个NSError! - 即,它们都是明确提供的.为什么他们不仅仅是作为Bool和NSError编写的,只要Facebook在发送它们之前解包它们?此外,如何设置成功和错误?传统使用NSError会说当没有问题时它会设置为nil.
我编写了一个嵌入Python的小程序.我正在使用Py_Initialize()和Py_Finalize()正确设置它,并且能够使用PyRun_SimpleString或PyRun_SimpleFile运行脚本.但是,我不知道在打印变量时如何模仿Python自己的解释器的行为.
特别:
a = (1, 2, 3)
print a
Run Code Online (Sandbox Code Playgroud)
适合我的工作:打印出来(1,2,3)
然而:
a = (1, 2, 3)
a
Run Code Online (Sandbox Code Playgroud)
什么都没有打印出来.在Python自己的解释器中,这也会打印出(1,2,3).如何让我的代码执行用户期望的操作并打印出值?
提前致谢!
android ×1
c ×1
interpreter ×1
ios ×1
python ×1
python-c-api ×1
swift ×1
uikit ×1
uilabel ×1
uitextfield ×1
uitextview ×1