如何为我的EXISTING Xcode 7项目添加复杂功能?
看WWDC视频2015会议209,显示增加复杂性的方式是创建一个新的项目,并在复杂性.这适用于该情况,但我如何在现有项目中添加它们?
我在XCode对象选择器中找不到复杂控制器(见下文):
为什么会这样?
我刚下载了新的Xcode 7 beta 5,我找不到解决此错误的方法.它一直突出显示"pickker.mediaTypes = [kUTTypeImage]"这一行,并说"不能将类型'[CFString]'的值赋给'[String]''类型的值"
if (UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)){
let picker = UIImagePickerController()
picker.delegate = self
picker.sourceType = UIImagePickerControllerSourceType.Camera
picker.mediaTypes = [kUTTypeImage]
picker.allowsEditing = true
self.presentViewController(picker, animated: true, completion: nil)
}
else{
NSLog("No Camera.")
}
Run Code Online (Sandbox Code Playgroud) 我是一个早期的初学者,我正在尝试截取该应用程序并与共享按钮共享.分享按钮工作,它让我分享我的初始文本和URL,只是截图似乎甚至没有采取.
经过几天的研究后,我发现所有答案对我来说都可能过于先进,我可能在开始时缺少基础知识.
我不知道在哪里放置截图的代码,或者我必须设置什么才能使它工作.我也不知道如何将截图实现为图像.
这是我的分享按钮代码,效果很好:
func socialShare(sharingText: String?, sharingImage: UIImage?, sharingURL: NSURL?) {
var sharingItems = [AnyObject]()
if let text = sharingText {
sharingItems.append(text)
}
if let image = sharingImage {
sharingItems.append(image)
}
if let url = sharingURL {
sharingItems.append(url)
}
let activityViewController = UIActivityViewController(activityItems: sharingItems, applicationActivities: nil)
activityViewController.excludedActivityTypes = [UIActivityTypeCopyToPasteboard,UIActivityTypeAirDrop,UIActivityTypeAddToReadingList,
UIActivityTypeAssignToContact,UIActivityTypePostToTencentWeibo,UIActivityTypePostToVimeo,UIActivityTypePrint,UIActivityTypeSaveToCameraRoll,UIActivityTypePostToWeibo]
self.presentViewController(activityViewController, animated: true, completion: nil)
}
@IBAction func clickShare(sender: AnyObject) {
socialShare("Text to share #Hashtag", sharingImage: UIImage(named: "image"), sharingURL: NSURL(string: "http://itunes.apple.com/app/"))
}
Run Code Online (Sandbox Code Playgroud)
这是我到处找到截图的代码.但我没有让它工作/不知道把它放在哪里,如何将它与IBAction连接以及如何将屏幕截图实现为图像.
//Generate the screenshot
UIGraphicsBeginImageContext(view.frame.size)
view.layer.renderInContext(UIGraphicsGetCurrentContext())
var …Run Code Online (Sandbox Code Playgroud) 我想在我的watchkit应用程序中使用Parse.com,但它无法构建,因为无法找到storekit文件.我添加了框架,但它不起作用.请帮忙.
我的代码工作正常,我想要它在模拟器中的确切方式.但是,当我把它放在真实设备上并转到该位置时,locationManager(..., didEnterRegion region: CLRegion)不会被调用.我不认为它是在代码中的错误,因为当我进入和离开的模拟器两个位置didExitRegion和didEnterRegion被调用,而不是真正的设备上.我正在使用Swift 2.0 Xcode 7 beta 5中的iPhone 5S进行测试,在大型开放区域内具有良好的小区覆盖.我也尝试过不同的半径.我的简化代码如下:
import UIKit
import CoreLocation
import MapKit
class GeoLapViewController: UIViewController, CLLocationManagerDelegate, MKMapViewDelegate{
var manager: CLLocationManager?
var location: CLLocationCoordinate2D!
@IBOutlet weak var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
manager = CLLocationManager()
manager?.delegate = self;
manager?.desiredAccuracy = kCLLocationAccuracyBest
self.mapView.delegate = self
mapView.mapType = MKMapType.Satellite
manager?.startUpdatingLocation()
let currRegion = CLCircularRegion(center: CLLocationCoordinate2D(latitude: location.latitude, longitude: location.longitude), radius: 20, identifier: "Laplocation")
manager?.startMonitoringForRegion(currRegion)
let newAnotation = MKPointAnnotation() …Run Code Online (Sandbox Code Playgroud) 我试图简单地保存一条记录,然后取出它,但我认为我在做错了,因为我的记录没有保存.输出窗口只显示一个空数组.
我在Xcode 7 beta 5中使用了锅炉板 AppDelegate CoreData堆栈.[参见这里的要点]
实体
模型
import Foundation
import CoreData
// @func(Person) edit: removed
class Person: NSManagedObject {
@NSManaged var firstName: String?
@NSManaged var lastName: String?
}
Run Code Online (Sandbox Code Playgroud)
查看控制器
import UIKit
import CoreData
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
seedPerson()
fetch()
}
func seedPerson() {
let managedContext = AppDelegate().managedObjectContext
let entity = NSEntityDescription.entityForName("Person", inManagedObjectContext: managedContext)
let person = …Run Code Online (Sandbox Code Playgroud) 我最近将Xcode从Xcode 7 beta 4更新为Xcode 7 beta 5,并开始出现之前没有的错误.那就是:"AllocWithZone在Swift中不可用:改为使用Object Initializers."
以下是发现错误的代码:
public func copyWithZone(zone: NSZone) -> AnyObject {
let copy = self.dynamicType.allocWithZone(zone) as ChartDataSet
copy.colors = colors
copy.label = self.label
return copy
}
Run Code Online (Sandbox Code Playgroud)
我用什么代替".allocWithZone",以便它使用对象初始化器代替这个Obj C组件?
以下代码:
protocol SomeProtocol {}
class SomeClass: SomeProtocol {}
private func doSomethingWith(inout someVar: SomeProtocol) {}
private var someGlobalVar = SomeClass() // inferring SomeClass's type
doSomethingWith(&someGlobalVar)
Run Code Online (Sandbox Code Playgroud)
产生以下错误:
无法使用类型'(inout SomeClass)的参数列表调用'doSomethingWith'
更改倒数第二行以private var someGlobalVar: SomeProtocol = SomeClass()解决错误.
SUBJ.
所以我刚试了一下我认为简单的操作 - 给NSDate添加一天:
继这个答案也SO它提供了以下解决方案,而不是我想要什么(但具有相同的逻辑)不工作:
let twoDaysAgo = calendar.dateByAddingUnit(NSCalendarUnit.Day, value: -2, toDate: NSDate(), options: nil)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
"Could not find an overload for 'NSDate.init' that accepts the supplied arguments
Run Code Online (Sandbox Code Playgroud)
删除NSDate()参数后形成这个:
let d = NSDate()
let twoDaysAgo = calendar.dateByAddingUnit(NSCalendarUnit.Day, value: -2, toDate: d, options: nil)
Run Code Online (Sandbox Code Playgroud)
我现在得到一个不同的错误:
'Int' is not convertible to 'IntegerListeralConvertible'
Run Code Online (Sandbox Code Playgroud)
在搜索了各种出口之后,事实证明错误在最后的参数中options:nil- 现在必须传递参数.
为什么会这样?
NSHipster声明:
components(_:fromDateComponents:toDateComponents:options :):返回两个NSDateComponents实例之间的差异.该方法将使用未设置的任何组件的基值,因此至少为每个参数提供年份.options参数未使用; 传递nil/0.
虽然Apple没有明确说明论点不能为零
计算选项.有关可能的值,请参阅"日历选项".如果指定"wrap"选项(NSWrapCalendarComponents),则指定的组件会递增并在溢出时回绕到零/ 1,但不会导致更高的单位递增.当wrap选项为false时,单元中的溢出会进入更高的单位,如典型的添加.
这是一个XCode 7 beta错误吗?Swift 2中的新功能?
我正在尝试创建XCTestCase以在我的大纲视图中测试重新排序(在OS X应用程序中).当我使用UI测试记录功能时,Xcode打印出:
window.outlines.staticTexts["<cell which I want to move>"].click()
Run Code Online (Sandbox Code Playgroud)
我尝试在大纲视图的内部或外部拖动单元格,Xcode生成相同的无用代码.
有谁知道如何在Xcode 7中正确测试拖放?