相关疑难解决方法(0)

iOS(iPhone,iPad,iPodTouch)查看实时控制台日志终端

有没有办法查看实时控制台日志以实时方式查看NSLog和其他调试消息,例如adb logcat?

ios

119
推荐指数
7
解决办法
14万
查看次数

在发布应用程序之前是否需要禁用NSLog?

在为iPhone发布应用程序时,如果我禁用NSLog();它会表现更好吗?

iphone nslog ios

116
推荐指数
8
解决办法
5万
查看次数

在Swift项目中禁用NSLog进行生产

所以这个答案我是否需要在发布应用程序之前禁用NSLog?提供了一种在生产环境中禁用NSLog的好方法,但不幸的是,这个解决方案似乎不适用于Swift项目.我的方法是将以下代码放在我用于项目中某些pod的桥接头.h文件中.

#ifdef DEBUG
    #define DLog(...) NSLog(@"%s %@", __PRETTY_FUNCTION__, [NSString stringWithFormat:__VA_ARGS__])
#else
    #define DLog(...) do { } while (0)
#endif
Run Code Online (Sandbox Code Playgroud)

但是,在Swift代码中使用DLog会导致编译器声明它们是未经过识别的符号.是否有其他地方我应该放置这个#ifdef或者一般的Swift项目是否有不同的解决方案?

objective-c ios swift

27
推荐指数
3
解决办法
1万
查看次数

Xcode 7:显示发布版本的发布版本的相同控制台日志?

这个答案解决了如何在Xcode中显示控制台日志,但是print在应用程序的开发版本中出现的使用Swift中的函数打印的输出不会出现在发布版本中.

为了清楚起见,应用程序是从App Store下载的,然后打开Xcode,控制台日志显示为SO答案所描述的.

这个答案表明,print即使是发布版本,该功能仍会继续向控制台发送输出.

但是,App Store版本不再显示打印到控制台以进行开发构建的行.

您如何查看为开发构建显示的相同控制台输出?

xcode ios swift xcode7

14
推荐指数
2
解决办法
4394
查看次数

print()/ println()执行速度慢吗?

我有一个有几千行的应用程序,在该代码中有很多println()命令.这会减慢应用程序的速度吗?它显然是在模拟器中执行的,但是当你从app store/TestFlight存档,提交和下载应用程序时会发生什么.这段代码是否仍然"活跃",那么"注释掉"的代码呢?

它是字面上永远不会读或我应该在提交测试航班/应用程序商店时删除注释掉的代码吗?

ios swift

13
推荐指数
2
解决办法
3823
查看次数

使用类func vs func vs no class声明的好处

好的,我的项目中有一堆辅助函数,我最初在一个名为Animate的类中.我很想知道声明func vc类func有什么好处.

让我们使用它作为示例类:

class Animate{
    func moveView(...){
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我相信如果我有一个类func,我就不必实例化这个类了.

Animate.moveView(...)

如果我只用func声明函数,它将是:

Animate().moveView(...)

但是,如果我不将该文件声明为类,则:

func moveView(...){
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我调用该函数时,它只是:

moveView(...)
Run Code Online (Sandbox Code Playgroud)

没有指示代码来自哪里,它可以在项目的任何地方使用.

这三种方式的优点和缺点是什么?是不是宣布一个不好的做法?或者,是否有一些边缘情况,这是非常有用的?例如,在我的情况下,我不需要一个类,因为我只是创建辅助函数而不是对象.

提前感谢您对此有任何见解!

swift

11
推荐指数
2
解决办法
3670
查看次数

如何调配 Swift.print(items:separator:terminator)

我正在寻找 swizzleSwift.print功能的方法。覆盖它不是一种选择,因为如果您使用它可能会被绕过Swift.print(:)

选择器无法识别标识符:

@objc class func printSwizzle() {
    guard let instance = class_getInstanceMethod(self, #selector(print(separator:terminator:))),
    let swizzleInstance = class_getInstanceMethod(self, #selector(swizzlePrint(separator:terminator:))) else { return }
    method_exchangeImplementations(instance, swizzleInstance)
}
Run Code Online (Sandbox Code Playgroud)

这甚至可能吗?因为 swizzling 是一个obj-c运行时特性。

ios swift method-swizzling

4
推荐指数
1
解决办法
585
查看次数

在将应用程序提交到应用商店时如何处理打印语句

我正在努力在app store上提交我的第一个Swift应用程序,我只是对如何处理我在应用程序中的打印语句感到好奇.例如

do {
    try managedObjectContext.save()
} catch let error as NSError {
    print(error)
}
Run Code Online (Sandbox Code Playgroud)

app-store swift

3
推荐指数
1
解决办法
1318
查看次数

标签 统计

ios ×6

swift ×6

app-store ×1

iphone ×1

method-swizzling ×1

nslog ×1

objective-c ×1

xcode ×1

xcode7 ×1