我刚刚更新到Xcode 9并将我的应用程序从swift 3转换为swift 4.我的图表使用字符串来标记轴和其他变量.所以我有一个moneyAxisString ="Money".以前我可以使用以下代码绘制它们:
moneyAxisString.draw(in: CGRect(x: CGFloat(coordinateXOriginLT + axisLength/3), y: CGFloat(coordinateYOriginRT + axisLength + 5 * unitDim), width: CGFloat(300 * unitDim), height: CGFloat(100 * unitDim)), withAttributes: attributes as? [String : AnyObject])
Run Code Online (Sandbox Code Playgroud)
其中属性是字典定义如下
attributes = [
NSAttributedStringKey.foregroundColor: fieldColor,
NSAttributedStringKey.font: fieldFont!,
NSAttributedStringKey.paragraphStyle: style
]
Run Code Online (Sandbox Code Playgroud)
现在我的应用程序将无法编译,我收到消息:
无法转换'[String:AnyObject]类型的值?' 预期的参数类型'[NSAttributedStringKey:Any]?'
在WWDC 2017演示文稿204中,他们说您可以在自定义titleView中使用自动布局。
它发生在7:53左右
他们从不展示如何执行此操作的示例。
当我尝试时,我得到一个零尺寸的视图。
在界面构建器中,我创建了一个UIView并添加了一个UISearchBar和一个UIButton作为这样的补贴
[seachBar]-[Button]
宽度变为零。
有谁知道如何使用这项新功能?
我有一个应用程序,它将与服务器同步,并每天更新数据。在同步期间,我删除了某些实体的所有数据,并重新加载了新数据。我正在使用以下代码:
func SyncronizeUserComments(theData : [[AnyHashable : Any]])
{
// Delete User Comments for this User and Connection
let commentRequest : NSFetchRequest<NSFetchRequestResult> = PT_UserComments.fetchRequest()
commentRequest.predicate = NSPredicate(format: "connection = %@ AND user == %@", Global_CurrentConnection!, Global_CurrentUser!)
coreData.processDeleteRequest(request: commentRequest)
// ADD the Comments to CoreData
for index in 0..<theData.count {
let result : [AnyHashable : Any] = theData[index]
if let commentID = result["Comment_ID"] as? String, let commentText = result["Comment_Text"] as? String, let commentTitle = result["Comment_Title"] as? String
{
let newUserComment = PT_UserComments(context: …Run Code Online (Sandbox Code Playgroud) 将图像添加到项目时,Xcode会显示"添加到目标"复选框.即使我启用它,图像也不会实际添加到目标,并且图像不会显示在应用程序中.
当我单击图像然后查看右窗格中的"文件检查器"时,我可以看到"目标成员资格"保持未选中状态.如果我现在在这里启用它,那么它工作正常并在应用程序中显示.
不应该"添加到目标"意味着它应该自动启用"目标成员资格"吗?
我正在尝试使用Swift在iOS 11中使用新的大型标题系统。当标题过长时(请参见图像示例),它会添加...而不是换行或缩小文本大小。如何添加换行符?

这是我用来设置标题的一些代码:
self.navigationController?.navigationBar.prefersLargeTitles = true
self.navigationController?.navigationBar.largeTitleTextAttributes = [NSForegroundColorAttributeName: MyGlobalVariable.themeMainColor]
self.navigationController?.navigationBar.largeTitleTextAttributes = [NSFontAttributeName: UIFont.systemFont(ofSize: 22)]
navigationItem.title = "Search by Name"
Run Code Online (Sandbox Code Playgroud) 我主要使用Xcode 9和Objectice-C.调试栏中的可视内存调试按钮按钮不会显示在该方案的任何可能配置中.我也尝试将部署目标升级到iOS10而没有任何运气.
我错过了一些构建设置,因为这个项目是很久以前创建的(我总是更新到每个新版本中的Xcode推荐设置)?
谢谢!
我是iOS开发的新手,我应该修复使用Swift 3.0和Xcode 8制作的iOS应用程序中的一些错误,它几乎可以正常工作.但是当我用Xcode 9和Swift 4.0打开它时,它显示出一些与之前不同的按钮.
以下是其中一个按钮的源代码.
let button: UIButton = UIButton.init(type: UIButtonType.custom)
//set image for button
button.setImage(UIImage(named: "menu.png"), for: UIControlState())
button.frame = CGRect(x: 0, y: 0, width: 30, height: 23)
let barButton = UIBarButtonItem(customView: button)
button.addTarget(self, action: #selector(ViewController.shareButtonPressed), for: UIControlEvents.touchUpInside)
self.navigationItem.leftBarButtonItem = barButton
Run Code Online (Sandbox Code Playgroud)
此代码位于ViewDidLoad方法内.我的问题是当我删除,
button.setImage(UIImage(named: "menu.png"), for: UIControlState())
Run Code Online (Sandbox Code Playgroud)
它消失了按钮但是当我改变高度和宽度时,
button.frame = CGRect(x: 0, y: 0, width: 30, height: 23)
Run Code Online (Sandbox Code Playgroud)
它什么都没改变.我的问题是如何解决这个错误.任何建议,答案都非常感谢,如果给出的细节不够,请提及.谢谢!
我已经在项目中添加了gpx文件;它的名称是TrailOfHistory.gpx。我已经编辑了项目的方案,以便Xcode 9使用此文件执行位置更新。
以下是方案的“运行”和“测试”配置的屏幕截图,其中我指定了应使用gpx文件:
当我运行应用程序时,用户位置更新(如gpx文件所给出的)会自动开始。我可以在应用程序的MKMapView上看到这种情况。
相反,当我运行我的单元测试之一时,用户位置更新不会自动开始。相反,我必须执行手动步骤,单击调试工具栏的“模拟位置”按钮并选择gpx文件。如以下屏幕截图所示:
我的最终目标是得出一组可以由连续集成系统执行的测试。因此,单击Xcode按钮不会成功。
谁能提供这方面的见识?特别是,谁能说出他/她曾经创建过XCTest的经验,其中自动开始了位置更新(如果这样的话,我会怀着希望;目前我不清楚我应该有什么期望)?
注意:一年多以前,我发现了这个非常相似的问题。希望我能引起一些新的兴趣。
我最近下载了Xcode 10的Beta版本.我打开了一个现有的项目,想在模拟器上启动它.但是一旦模拟器启动,可能整个mac都冻结了.我做不了什么.唯一有效的是移动鼠标.
重新启动我的Mac后,我认为冻结是Xcode 10 Release中的一个测试版漏洞.所以我回到了Xcode 9.4.但是当我使用一个小的操场文件时,它再次发生,同时编译了操场文件.在另一次重启之后,我尝试用我现有的Xcode项目重新创建问题(我用于Xcode 10),但这次模拟器没有任何问题.
我在用:
我的Mac太老了,无法正常使用Xcode,或者你们中的任何人都知道这是否是我能解决的问题?