我正在将一个项目迁移到Swift 4,我不知道如何在Swift 4中使用新的API:s来完成这个任务。
let formattedString = "A string"
guard let stringData: Data = formattedString.data(using: .utf8) else { return }
let data: DispatchData = [UInt8](stringData).withUnsafeBufferPointer { (bufferPointer) in
return DispatchData(bytes: buffer
我想在Swift中打开一个文本文件,并设法将完整的路径作为参数传递:
let dados = String.stringWithContentsOfFile("/Users/aczuquim/Google Drive/Swift/Verdadeiro ou Falso/Verdadeiro ou Falso/Dados.txt", encoding: NSUTF8StringEncoding, error: nil)
因为,我将文件添加到项目中,是否有使用相对路径的方法?
当我使用相对路径时,返回一个nil。
更新
在操场上,这条线可以很好地工作:
let dados = St
我在我的项目中使用了Eureka,我希望对Cell的值类型使用Node类型:
final class TreeTVCell: Cell<[Node]>,CellType{//#1:compiling Error in Swift 4.0
}
如您所知,Cell的值类型必须符合协议等价性,而且类Node是由Objc编写的,它非常简单:
#import "Node.h"
@implementation Node
- (instancetype)initWithParentId : (int)parentId nodeId : (int)nodeId name :
我的项目中有两个swift文件。一个称为loadApi.swift,另一个是默认的ViewController.swift
我打算在loadApi.swift中包含获取和解析Json数据的所有功能。Bellow是代码
import Foundation
var arr: Array = [String]()
func loadApi(){
var url = "http://api.wordnik.com:80/v4/word.json/love/definitions?limit=200&includeRelated=true&sourceDiction
我真的是个新手&目前我正在做一个项目来学习API,这个项目显示了来自的游戏列表,其中提到了网站的。我创建GameFeed.swift & GameDetail.swift是为了从它中提取名称、发布日期和评级,并在我的控制台中正常工作。
GameFeed.swift:
struct GameFeed: Codable {
let results:[GameDetail]
}
GameDetail.swift:
struct GameDetail: Codable {
let name:String
let released:String
let r
我已经从另一个项目中添加了包含Objective类的文件到我的Swift项目中。在这些Obj类中,有一个称为char *类型的"decodedBuffer“的数据成员。我对C不是很熟悉,但我认为char指针是C表示字符串的方式。当我在Swift代码中尝试获取此数据成员时,例如编写以下行
myObjCClass.decodedBuffer = "a new value"
我在说decodedBuffer是UnsafePointer<Int8>类型时出错了。所以我有两个问题:
为什么char *是Swift中的UnsafePointer<Int8>
Cocoa框架为版本控制提供了支持,这可以在Versioning部分的Build Settings中找到。
要在运行时访问这个值,我们可以使用为我们自动生成的FrameworkVersionNumber和FrameworkVersionString[]变量作为构建过程的一部分。
在使用Swift项目时,可以在目标-C兼容性标头顶部自动生成这些内容:
//! Project version number for Framework.
FOUNDATION_EXPORT double FrameworkVersionNumber;
//! Project version string for F
目前正在做一个项目,这个项目提供了关于不同材料的信息,我正在试图弄清楚如何将各个swift文件组合成一个整体对象来处理。 MaterialOne.swift: struct MaterialOne {
let name = ("Material 1")
let otherData = 13.91
struct RelatedData {
let relatedData1 = 49.44
let relatedData2 = 0.0
...
let relatedData9 = 35.
尝试在我的机器上使用Xcode-beta (v9)测试Swift 4,并在将包导入测试项目时遇到问题:
使用swift package init --type executable启动项目
更改了Package.swift并添加了2个项目来进行试验:
Package.swift
// swift-tools-version:4.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
我尝试更新Swift 3,但得到以下错误:
Ambiguous use of 'mutableCopy()'
在更新到swift 3之前。它运行良好。
Swift 2.3
NSUserDefaults.standardUserDefaults().objectForKey("listsavednews")?.mutableCopy() as! NSMutableArray
Swift 3.0
(UserDefaults.standard.object(forKey: "listsavednews")? as AnyObject).mutableC
扩展NSData以确定文件类型:
extension NSData {
var dataType: String? {
// Ensure data length is at least 1 byte
guard self.length > 0 else { return nil }
// Get first byte
var c = [UInt8](count: 1, repeatedValue: 0)
self.getBytes(&c, length: 1)
// I