我知道测试API的响应时间基本上是由服务器或后端端完成的,但是因为我正在为一个应用程序工作,我还需要检查来自iOS End的api响应时间.
我怎样才能做到这一点 ?我读了几个链接,它说使用计时器启动和计时器结束,然后通过endTime - startTime找到响应时间, 但这似乎不方便.
我想使用Xcode(即使XCTest在那里).
这是我的API之一(我在ApiManager类的单独类中编写了所有Web服务使用方法):
LoginVC:
//Call Webservice
let apiManager = ApiManager()
apiManager.delegate = self
apiManager.getUserInfoAPI()
Run Code Online (Sandbox Code Playgroud)
ApiManager:
func getUserInfoAPI() {
//Header
let headers = [
"Accept" : "application/json",
"Content-Type" : "application/json",
]
//Call Web API using Alamofire library
AlamoFireSharedManagerInit()
Alamofire.request(HCConstants.URL, method: .post, parameters: nil, encoding: JSONEncoding.default, headers: headers).responseJSON { response in
do{
//Checking For Error
if let error = response.result.error {
//Stop AcitivityIndicator
self.hideHud()
//Call failure delegate method
//print(error)
self.delegate?.APIFailureResponse(HCConstants.EXCEPTION_MESSAGES.SERVICE_FAILURE)
return
} …Run Code Online (Sandbox Code Playgroud) 在watchOS 4.0(Xcode 9.0 beta 6)中执行后台任务时,我收到类似于下面的错误消息.它们似乎没有引起任何问题,但我不确定.有没有人知道是什么导致这些错误被记录,如果有修复或方法来抑制它们?
2017年8月24日09:03:40.130009-0400 cfanow关注应用信息[6906:377766] [bg_app_refresh] - [WKRefreshBackgroundTask cleanupStorage] _block_invoke:213:错误试图到达文件:///用户/ justindomnitz /库/开发/ CoreSimulator /设备/ 264AA014-FD6C-426A-88DF-64E502393BAF /数据/容器/数据/ PluginKitPlugin/107681EE-B30E-49CD-9416-8F030D1CA0BF /库/ com.apple.watchkit/bktasksnapshot_(空):错误域= NSCocoaErrorDomain代码= 260"无法打开文件"bktasksnapshot_(null)",因为没有这样的文件." 的UserInfo = {NSURL =文件:///用户/ justindomnitz /库/开发商/ CoreSimulator /设备/ 264AA014-FD6C-426A-88DF-64E502393BAF /数据/容器/数据/ PluginKitPlugin/107681EE-B30E-49CD-9416-8F030D1CA0BF /库/ com.apple.watchkit/bktasksnapshot_(空),NSFilePath = /用户/ justindomnitz /库/开发商/ CoreSimulator /设备/ 264AA014-FD6C-426A-88DF-64E502393BAF /数据/容器/数据/ PluginKitPlugin/107681EE-B30E- 49CD-9416-8F030D1CA0BF /库/ com.apple.watchkit/bktasksnapshot_(空),NSUnderlyingError = 0x79f3f3c0 {错误域= NSPOSIXErrorDomain代码= 2 "没有这样的文件或目录"}}
例如,当用户同时按下数字表冠和侧面按钮(又名截屏)时,本机锻炼应用程序和 Sportstracker 能够暂停锻炼。
我需要这样的东西,但我在文档或网上其他地方找不到任何有关它的信息。对于 iOS,有“notificationUIApplicationUserDidTakeScreenshot”,但这在 watchOS 上不起作用。
有人知道怎么做吗?它是公开可用的还是私有 API?是我看起来不够好吗?
我收到此错误 NSURLConnection 已完成,错误代码 -1002。我已将下面的代码添加到我的 info.plist 中。有谁知道为什么?
提前致谢
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.0</string>
</dict>
Run Code Online (Sandbox Code Playgroud) 以一个非常接近在下面看一下:
// Note that this protocol can only be applied to reference types.
protocol Ref: class {
var zibbles: Int { get set }
}
class Reference: Ref {
var zibbles: Int = 42
}
// Note very carefully that we are NOT passing an
// instance, but a type itself.
func thwip<T: AnyObject>(into target: T.Type) {
}
// This compiles.
thwip(into: Reference.self)
// This fails to compile.
thwip(into: Ref.self)
Run Code Online (Sandbox Code Playgroud)
无论情况多么罕见,这是语言应该能够完成的事情.编译器知道Ref必须符合的任何实例AnyObject,因此类型约束thwip应该可以工作,但事实并非如此.
请注意,如果我们 …
我有一堂课是这样的:
class ObjectA:ObservableObject {
@Published var type:ObjectSheetType = .none
}
Run Code Online (Sandbox Code Playgroud)
我正在使用这样的类来处理此类对象的实例:
class ProcessObject {
@ObservedObject private var object:ObjectA
init(object:ObjectA) {
self.object = object
}
process() {
if object.type == .big {
// bla bla
}
...
}
Run Code Online (Sandbox Code Playgroud)
然后我决定添加另一个类:
class ObjectB:ObservableObject {
@Published var type:ObjectSheetType = .none
}
Run Code Online (Sandbox Code Playgroud)
和一个协议
protocol ObjectProtocol {
var type:ObjectSheetType { get set }
}
Run Code Online (Sandbox Code Playgroud)
该协议已添加到以下两个类中:ObjectA和ObjectB。
ProcessObject然后修改该类以接受两种类型的对象:
class processObject<T:ObjectProtocol, ObservableObject > {
@ObservedObject private var object:T
init(object:T) {
self.object = object
} …Run Code Online (Sandbox Code Playgroud) Swift 中这两者有区别吗?
protocol ABProtocol: AProtocol, BProtocol {}typealias ABProtocol = AProtocol&BProtocol我正在尝试使一个类符合Sendable. 我有一些可变的存储属性导致了问题。但是,我无法理解的是 MainActor 独立属性不允许我的类符合 Sendable。但是,如果我将整个班级标记为 a @MainActor,那就没问题了。然而,我实际上并不想让全班都遵守@MainActor。
举个例子,看下面的代码:
final class Article: Sendable {
@MainActor var text: String = "test"
}
Run Code Online (Sandbox Code Playgroud)
它给出了这样的警告:Stored property 'text' of 'Sendable'-conforming class 'Article' is mutable。
有人可以解释为什么吗?我认为与演员隔离会很好。
我一直在尝试将我的项目从 xcode 推送到 github,但它不断给我一条错误消息,表明与服务的通信已中断。以前的提交和推送都有效,但现在坏了。我已经尝试过重新启动计算机和 Xcode,但仍然无法正常工作。我正在尝试用一些视频文件在这里推送大约 4-5 个提交。我在这里看到了类似的问题,但解决方案并没有真正帮助。
每当我尝试推送时,在长时间加载后都会收到此错误消息。提交有效,但推送无效。
我正在尝试向新 Xcode 15 字符串目录(又名 xcstrings)中的字符串添加换行符。我什么也没想,就在\n想要换行的地方添加了平常的内容。
但在我的 SwiftUI 视图中,我可以看到实际转义的内容\n,并且文本不会换行。因此,文本“lorem ipsum\ndolor”将作为“lorem ipsum\ndolor”呈现给用户。
如何在不使用目录中的多个独立字符串的情况下创建带有有意换行符的文本?