Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 贡献的大小会导致;NSString与NSObject不相同;_Ios_Swift - Fatal编程技术网

Ios 贡献的大小会导致;NSString与NSObject不相同;

Ios 贡献的大小会导致;NSString与NSObject不相同;,ios,swift,Ios,Swift,我的代码在iOS 8.0上运行正常,因为我更新到了Xcode 6.1/SDK 8.1,所以无法编译swift代码 我正试图从这样的字符串中获取CGSize let part1="my text" let font = UIFont(name: "Arial", size: 30) var dict = [NSFontAttributeName:font] let size: CGSize = part1.sizeWithAttributes(dict) 在最后一行,我得到了错误“NSStrin

我的代码在iOS 8.0上运行正常,因为我更新到了Xcode 6.1/SDK 8.1,所以无法编译swift代码

我正试图从这样的字符串中获取CGSize

let part1="my text"
let font = UIFont(name: "Arial", size: 30)
var dict = [NSFontAttributeName:font]
let size: CGSize = part1.sizeWithAttributes(dict)
在最后一行,我得到了错误“NSString与NSObject不相同”

有人能帮忙吗

事实上,我找到了解决方案,这里是要添加的行,以使其工作

let part1="my text"
let font = UIFont(name: "Arial", size: 30)
if let fontNotNil=font {
    var dict = [NSFontAttributeName:fontNotNil]
    let size: CGSize = part1.sizeWithAttributes(dict)
}
请尝试以下操作:

let part1: NSString = "my text"

所有选项都需要适当的展开“

输出:

尺寸:(96.6796875,33.515625)


如何声明
part1
?更好的展开字体
var dict=[NSFontAttributeName:font!]
@codester显式展开不应进行,除非在任何情况下都不可能为零。在这种情况下,API将其指定为可选。它应在
if let…
语句中展开。OP答案中的语句2和3可以组合成一行:
if let font=UIFont(名称:“Arial“,大小:30){
。展开字体对我有效!不,没有帮助。仍然存在相同的错误。”
let part1: NSString! = "my text"  // For the test since we do not know the type of part1

if let font = UIFont(name: "Arial", size: 30) {
    let dict = [NSFontAttributeName:font] as NSDictionary
    let size: CGSize = part1.sizeWithAttributes(dict)
    println("size: \(size)")
}