我有一个问题,要从Swift3中的结构数组中生成一个Swift3。我在Stack Overflow搜索,什么也帮不了我(这里是)。我有一个这样的struct:
public struct ProductObject {
var prodID: String
var prodName: String
var prodPrice: String
var imageURL: String
var qty: Int
var stock: String
var weight: String
init(prodID: String, pro
在我的(Swift)单元测试中,当尝试将获取的NSManagedObject向下转换为其正确的子类StoryPhotoTrack时,我得到一个运行时错误:Could not cast value of type 'StoryPhotoTrack_StoryPhotoTrack_' (0x7fbda4734490) to 'StoryPhotoTrack' (0x11edd1b08).
下面是我的失败/崩溃测试:
func testFetchingStoryWithCastingInvolved() {
let story : StoryPhotoTrac
因为这个我睡不着觉。刚开始重新编程,我不能理解这一点。 我试图将我的文档映射到"Shop“对象中,但如何检索小时字段并将其转换为字符串:Any。 错误:类型“”Shop“”不符合协议“”Decodable“”错误:类型“”Shop“”不符合协议“”Encodable“” Shop.swift struct Shop: Codable, Identifiable {
@DocumentID var id: String?
var image: String
var name: String
var adress: [String:String]?
var open
我将从java/C++/C#转到Swift。我有以下问题:
class A {
struct Fields{
static let valA = "A";
}
}
class B: A {
struct Fields{
static let valB = "B";
static let valD = "D";
}
}
var b: B = B()
println("\(B.Fields.valB)")
编译器抱怨“类A.Fields.Type没有名为
我需要保存一个Swift类型的集合,并编写一个函数来检查给定对象是否是其中之一的实例。我可以很容易地在Java中做到这一点:
Class c = x.getClass();
c.isInstance(someObj)
然而,我不知道如何在Swift中做到这一点:
var isInt = 7 is Int.Type // compiles
let x = Int.self
var isInt = 7 is x // compiler error - Use of undeclared type 'x'
这能在Swift中完成吗?
下面有一个名为createNotifications()的方法,当警报的重复发生为daily时,我尝试执行一些奇特的操作。我首先调用self.createNotificationForToday(),这很好,然后在每个迭代中启动一个while循环并调用self.createNotificationForToday,每次返回新的date组件并使用它作为下一个迭代的输入。这允许我每次调用一个方法,迭代到“明天”,并为那天创建一个通知。问题在于这一部分:
var newDateComponents = dateComponents
while numberOfCreatableNotificatio
我在Swift中有一个AnyObject对象数组。每个对象都有餐馆的属性,如name、type、loc等。如果我想将包含类型为"Sushi“的所有对象保留在数组中,如何筛选数组。
带有两个对象的[AnyObject]数组示例。过滤器应该保留第一个对象(类型:寿司):
[<Restaurant: 0x7ff302c8a4e0, objectId: LA74J92QDA, localId: (null)> {
City = "New York";
Country = "United States";
Name = Sumo
我不知道原因,但我无法检查UIImage是否是nil,这是代码
var arrayBuildingImage: [UIImage] = []
for(var i = 0; i <= 100; i++){
var path:String = self.getDocumentsDirectory().stringByAppendingPathComponent("building/\(i).png")
if ( arrayBuildingImage[i] = UIImage(contents
struct Results: Codable {
let code: Int
let status: String
let data: DataClass
}
struct DataClass: Codable {
let surahs: [Surah]
let edition: Edition
}
struct Edition: Codable {
let identifier, language, name, englishName: String
let format, type: String
}
struct Surah: Codable, Identifiable{
var
我试图显示来自假后端JSON文件的数据。我试图从"shipment_items“键旁边的数组中收集数据。我知道我的代码结构不正确,因为我一直收到错误。
typeMismatch(Swift.Array, Swift.DecodingError.Context(codingPath: [\_JSONKey(stringValue: "id", intValue: nil)], debugDescription: "Expected to decode Array but found a number instead.", underly
这段代码是用Swift 2写的,但不能用Swift 3。
ShoppingManager.getShoppingItemsForPage(currentPage, pageSize: 40) { (shopItems: [ShopItemModel]?, error: Error?) -> () in
if error == nil {
...
self.shopItems.append(Array(shopItems[10..<40]))
我得到一个错误
value of optional type [ShopItemModel] not unwrapped。
我需要在后台上传一个CoreData对象到API服务器。为此,我创建了一个新的私有上下文作为主上下文的子级,并在其上执行perform()。我使用此上下文从对象获取JSON数据,并在上传后将一些数据写入对象。
看起来一切都很好,但我有一些疑问。
下面是一个简单的例子,说明了这种情况。上下文在第二个函数中有一些强引用吗?我应该在某个地方保留一些对我的新上下文的强引用吗?
// ViewController.swift
func uploadObject(_ currentObject: MyManagedObject) {
// we are in the main thread, go
因为不久的原因,我似乎不能做这件简单的事情。那就是把数组或者字符串放进火场。(没有for循环)。我该怎么做?
代码(错误):
// Cannot convert value of type '[String]' to expected argument type '[AnyHashable : Any]
var list = [String]()
list.append("TestString")
Database.database().reference().child("TestNode").updateChild
以前在我的应用程序中,当我调用服务器时,如果有任何错误,我做了以下操作:
Alamofire.request(mutableURLRequest).responseJSON{
response in if let JSON = response.result.value{
if JSON.count != 0{
let errorList = JSON["responseErrorsList"] as? NSArray
for error in errorList!{
我试图用swift 2中的PropertyListSerialization做一个字典,但它总是给出这样的错误:
"can not convert value of type 'Int' to expected argument type 'NSPropertyListReadOptions'
我的代码行是:
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {response,data,error in
if
我正在尝试获取一个JSON响应并将结果存储在一个变量中。在Xcode8的GM版本发布之前,我已经在Swift的以前版本中使用过这种代码。我在StackOverflow上看过一些类似的帖子:和。
然而,那里传达的思想似乎不适用于这种情况。
如何正确解析Swift 3中的JSON响应?在Swift 3中读取JSON的方式有什么变化吗?
下面是有问题的代码(它可以在操场上运行):
import Cocoa
let url = "https://api.forecast.io/forecast/apiKey/37.5673776,122.048951"
if let url = N
我正在研究堆栈溢出中的一个问题:中的代码片段
在那里,代码片段的作者做了这样的事情
if let httpResponse = response as? HTTPURLResponse {
if let xDemAuth = httpResponse.allHeaderFields["X-Dem-Auth"] as? String {
// use X-Dem-Auth here
}
}
我还看到了一些代码,其中有如下所示的if条件
if userInfoResponse as? HTTPURLResponse != nil {
我去了斯威夫
如何匹配Swift中对象的数据类型?
比如:
var xyz : Any
xyz = 1;
switch xyz
{
case let x where xyz as?AnyObject[]:
println("\(x) is AnyObject Type")
case let x where xyz as?String[]:
println("\(x) is String Type")
case let x where xyz as?Int[]:
println("
我试图在Swift (4)中添加两个KeyPaths,但是编译器要么不允许我,要么结果是'nil‘,尽管它是一个有效的键盘。
课程:
import Foundation
@objcMembers
class Foo: NSObject
{
@objc public dynamic var items = [1, 2, 3]
}
@objcMembers
class Bar: NSObject
{
@objc public dynamic var source: NSObject?
}
示例1:
let keyPath1 = \Bar.source
let keyPa
我正在Swift中构建一个共享扩展,它将一个文档保存到Firestore。到目前为止,我已经能够通过密钥链共享和应用程序组来验证正确的用户。我还可以从新的文档引用中获取documentID:
var ref = Firestore.firestore().collection("stuff").document()
print(ref.documentID) //prints the id
但是,当我尝试将某些内容保存到Firestore时,控制台中没有打印任何内容,这意味着我既没有从Firebase获得失败,也没有从Firebase获得成功回调(参见下面我批量更新的地方)。这
我们导入了一个过时的项目,它促使我们将其转换为Swift 3。作为对Swift了解不多的个人,我们在修复错误时遇到了困难。
import Foundation
class CellDescriptorHelper {
let itemKey = "Items"
let isExpandableKey = "isExpandable"
let isExpandedKey = "isExpanded"
let isVisibleKey = "isVisible"
let titleKey = "title"
let
我正在使用Swift创建一个应用程序,在该应用程序中,我必须显示使用以下URL的国家列表:
这里,我必须只获取name密钥并添加到我的NSMutableArray中。当我试图使用URLSession解析这个问题时,我得到的是错误:
expression produced error: error: /var/folders/_3/27lhgzw9699c4_yg37r72_d80000gp/T/expr40-bcf47d..swift:1:65: error: use of undeclared type 'Foundation'
Swift._DebuggerSup
我使用的是Xcode 9.2和Swift 4,如何检查返回的json数据是否为空?现在它在if json[0]["data"]行给出了错误Type 'Any' has no subscript members
var json: NSMutableArray = []
var newsArray: NSMutableArray = []
let url = URLFactory()
var data = try! NSData(contentsOf: url.getURL()) as Data
do {
json = try JSONSerializa
我终于尝试将我的目标之一-C应用程序转换为Swift 3.1。我还学习了一个关于Swift的教程来帮助我。但是,在试图将“for in”循环转换为在Obj-C中成功工作的Swift时,我遇到了以下错误。我已经在下面张贴了Swift和Objective代码,并在Swift中评论了我得到错误的行。我得到了for managedObject: NSManagedObject in myResults{的错误
误差状态
‘'Any’不可转换为'MSManageObject‘
任何帮助我向正确的方向是非常感谢的。
//IN SWIFT 3.1
let co