我在我的项目中使用下面的代码.更新到swift 4后,我收到错误.我该如何解决?
码:
let returnString : NSAttributedString
if styleList.count > 0
{
var attrs = [String:AnyObject]()
attrs[NSAttributedStringKey.font] = codeFont
for style in styleList
{
if let themeStyle = themeDict[style]
{
for (attrName, attrValue) in themeStyle
{
attrs.updateValue(attrValue, forKey: attrName)
}
}
}
returnString = NSAttributedString(string: string, attributes:attrs )
}
Run Code Online (Sandbox Code Playgroud)
这是错误:
无法使用类型为"NSAttributedStringKey"的索引下标"[String:AnyObject]"类型的值
无法将'[String:AnyObject]'类型的值转换为预期的参数类型'[NSAttributedStringKey:Any]?'
nsattributedstring swift swift4 xcode9 nsattributedstringkey
我进行了一些单元测试,以验证我使用Keychain的方式是否正确以及加载它们时数据的格式是否相同。
测试运行正常,直到更新为XCode9。此刻,KeychainService返回-50(未保存)。
根据这个问题,通过将Host添加到单元测试中来解决。但是,我的测试是在框架项目中进行的,没有任何应用程序可以用作主机。
let query = [
kSecClass as String : kSecClassGenericPassword as String,
kSecAttrAccount as String : key,
kSecValueData as String : data ] as [String : Any]
SecItemDelete(query as CFDictionary)
SecItemAdd(query as CFDictionary, nil)
Run Code Online (Sandbox Code Playgroud)
推荐的解决方案是什么?我希望XCode中只有一些配置,将测试移入应用程序对我来说不是一个合适的解决方案。
一旦我将手机升级到iOS 11.0.3,我就开始遇到这个问题了.
现在看来,Visual Studio Community Edition for Mac(v7.2 build 636)
我试过用XCode v9.0(9A235)和v9.0.1(9A1004)
这是我在Visual Studio for Mac的应用程序输出中收到的错误:
"错误MT1108:无法找到此11.0.3(15A432)设备的开发人员工具.请确保您使用兼容的Xcode版本,然后将此设备连接到Xcode以安装开发支持文件."
我已经验证了xcode-select的路径设置正确,所以理论上它应该可以正常工作.我几乎认为Xamarin工具链还不支持iOS v11.0.3
我也试过删除bin/obj文件夹无济于事.
任何人都可以确认Xamarin工具链是否与iOS v11.0.3兼容,如果有,是否需要采取任何特殊步骤才能使工具链识别出版本?
我可能会将我的设备降级到v11.0.1,但在此之前,我想知道工具链是否确实不兼容.
如果有更多我可以提供的信息,请告诉我.
在xcode 8模拟器中,当我过去拍摄屏幕截图时,如果模拟器中没有缩放比例,则它们的大小适合itunesconnect。
使用Xcode 9时,模拟器缩放比例为100%时,缩放比例是不同的,iTunesConnect不接受截图。
也许我的LED(1080p)分辨率低于多数民众赞成,这就是为什么我遇到这个问题。因此,在当前显示的屏幕上,如何为itunesconnet拍摄尺寸合适的屏幕截图?
当我将我的应用程序运行到我的iPhone时,我有这个警告:
unable to build chain to self-signed root for signer "".
Run Code Online (Sandbox Code Playgroud)
我的应用程序安装在iPhone但突然关闭.
我们有一些代码,其中一个类嵌套在扩展中.在Xcode 9中打开项目后,我们得到'嵌套类具有不稳定名称'警告.使用Xcode自动修复时,它生成一个@objc带有一些(生成?)参数.
例如:
struct Something {
}
extension Something {
@objc(_TtCV16MyProject9Something4Some) class Some: NSObject, NSCoding {
required init?(coder aDecoder: NSCoder) {
}
func encode(with aCoder: NSCoder) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
所有这些编译.但到底是_TtCV16MyProject9Something4Some什么?
它似乎是唯一的,因为如果我们在两个地方使用相同的一个,它将无法编译(一些通用的项目级编译器错误).
如果我_TtCV16MyProject9Something4Some用其他任何东西替换(比方说@objc(Something)),那么项目编译得很好,但实际上并没有更多的光线.
一个重要的问题是随机生成的参数,还是实际桥接名称的实际链接?
在Xcode 8中,当前分支在“源代码管理”菜单下可见。Xcode 9具有一个新的“源代码管理导航器”。但是您必须滚动(或展开文件夹结构)才能看到标记为(当前)的分支。有没有更简单,可能更快的方法来知道我当前在Xcode 9上的git分支?
我正在尝试设置具有特定颜色的属性,在这种情况下,我想使用Color Literal函数,但是Xcode并不建议Color Literal,而只是给我提供从UIColor中选择的选项...如何解决建议问题?

