我已经创建了这样的自定义UITextField
import Foundation
import UIKit
class NoZeroTextField: UITextField, UITextFieldDelegate {
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.delegate = self
}
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
if (string == "0" ) {
//ignore input
return false
}
return true
}
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试为该类编写单元测试,但是问题在于将NSCoder实例传递给构造函数。我无法实例化它或将其设置为nil。我如何对该课程进行单元测试?
我正在将现有代码升级到Swift 2,我需要一些帮助来保存Plist文件
这段代码在Xcode 6.3中工作,但现在使用Xcode 7和Swift 2,它显示了这个错误:
无法将时间'Int'的值转换为预期的参数类型'NSPropertyListReadOptions'(又名'NSPropertyListMutabilityOptions')
var resultValue = "Value goes here"
@IBAction func saveNote(sender: AnyObject) {
// Save note to plist
var appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
var pathForThePlistFile = appDelegate.plistPathInDocument
// Extract the content of the file as NSData
var data:NSData = NSFileManager.defaultManager().contentsAtPath(pathForThePlistFile)!
// Convert the NSData to mutable array
var notesArray = (try! NSPropertyListSerialization.propertyListWithData(data, options: Int(NSPropertyListMutabilityOptions.MutableContainersAndLeaves.rawValue), format: nil)) as! NSMutableArray
//
notesArray.addObject(resultValue)
// Save to plist
notesArray.writeToFile(pathForThePlistFile, atomically: true)
}
Run Code Online (Sandbox Code Playgroud)
请帮忙!
如果在上下文中出现以下错误,请使用Xcode 7和swift 2.0?.save(nil).
任何帮助表示赞赏
"不能对'NSManagedObjectContext'类型的非可选值使用可选链接
func newItem() {
let context = self.context
let ent = NSEntityDescription.entityForName("CallList", inManagedObjectContext: context)
let nItem = CallList(entity: ent!, insertIntoManagedObjectContext: context)
nItem.firstname = firstName.text
nItem.lastname = lastName.text
nItem.phonenumber = phoneNumber.text
context?.save(nil)
Run Code Online (Sandbox Code Playgroud) 是否可以使用Xcode 7在OS X 10.11上下载和构建Mac OS X 10.9和10.10 SDK?
当使用XCode编译Cocoa应用程序时,我在构建阶段运行自定义的Bash脚本。不幸的是,我不得不拼出完整的路径。相反,我几乎可以肯定Bash中可以使用一些变量,其中之一可能涵盖了它。这是我正在运行的:
/Users/mike/Projects/objectivec/proj1/proj1/shellscript.sh /Users/mike/Projects/objectivec/proj1/proj1/proj1/lang/en/html/
Run Code Online (Sandbox Code Playgroud)
看到拥有$ VAR会比这里指定物理路径有何帮助?这也将帮助我的团队成员无需修改即可编译该项目。
我尝试在XCode7文档中查找,但找不到任何可以使用的变量列表。
请注意,在这种情况下,路径/ Users / mike / Projects / objectivec / proj1 / proj1 /包含我的AppDelegate.mm文件,如果可以的话。
您能告诉我在此可用变量列表上的什么地方可以找到文档,从而不必指定完整的物理路径吗?
我想在我的应用程序中自动发送短信,我怎样才能在swift中完成?我使用MFMessageComposeViewController发送短信但是当我点击按钮时,它转到短信页面并要求我发送短信,它怎么能自动发送?
永远不会使用不可变值'textfieldInt'的初始化; 考虑将赋值替换为'_'或删除它和textfield2Int
我为textfieldInt收到两次警告
这是我的所有代码:
class ViewController: UIViewController {
@IBOutlet weak var textField1: UITextField!
@IBOutlet weak var textField2: UITextField!
@IBOutlet weak var output: UILabel!
@IBAction func calculate(_ sender: AnyObject) {
let textfieldInt: Int? = Int(textField1.text!)
let textfield2Int: Int? = Int(textField2.text!)
let convert = textField1.text! + textField2.text!
let convertText = String(convert)
output.text = convertText
}
Run Code Online (Sandbox Code Playgroud) 好吧,我真的是新来的Swift,我使用了swiftyJSON来轻松解析来自API的JSON数据。
我有一个数据响应,看起来像这样:
[
{
"fname": < String value>
"mname": < String value>
"lname": < String value>
"weights": [
{
"date": <String value>,
"weight": <String value>
},
{
"date": <String value>,
"weight": <String value>
}
]
Run Code Online (Sandbox Code Playgroud)
对于我的swiftyJSON解析方式,这是我的代码
let swiftyJSON = JSON(data: data!)
for item in swiftyJSON.arrayValue{
self.firstName = item["fname"].stringValue
self.middleName = item["mname"].stringValue
self.lastName = item["lname"].stringValue
//JSON Array "weights" code snippet below
}
Run Code Online (Sandbox Code Playgroud)
对于名称,我将其解析为字符串,但带有"weights"。我不知道该怎么做。我已经尝试过使用它:
for key in item["weights"]["weight"].arrayValue{
self.allWeights.append(key.stringValue)
}
Run Code Online (Sandbox Code Playgroud)
而且它不起作用。有人可以帮我弄这个吗?非常感谢。
xcode7 ×10
ios ×4
swift2 ×4
swift ×3
xcode ×3
macos ×2
build ×1
calculator ×1
iphone ×1
json ×1
swifty-json ×1
unit-testing ×1
xcode-server ×1
xcode7-beta5 ×1