标签: xcode8

在swift 3和向后兼容性中DISPATCH_TIME_NOW

根据@matt 使用的这个精彩答案dispatch_after,我在操场上尝试了代码,它工作正常(没有错误).但是,当我尝试执行向后兼容时DispatchTime.now(),iOS 10只有这样才可用:

func delay( _ delay: Double, closure: () -> ()){
    guard #available(iOS 10, *) else {
        dispatch_after(
            dispatch_time(
                DISPATCH_TIME_NOW,
                Int64(delay * Double(NSEC_PER_SEC))
            ),
            dispatch_get_main_queue(), closure)
        return
    }
    let when = DispatchTime.now() + delay
    DispatchQueue.main.after(when: when, execute: closure)
}
Run Code Online (Sandbox Code Playgroud)

编译器提供修复DISPATCH_TIME_NOWto Replace "DISPATCH_TIME_NOW" with "dispatch_time_t(DISPATCH_TIME_NOW)"并抛出错误说

无法将'Int'类型的值转换为预期的参数类型'dispatch_time_t'(又名'UInt64')

我尝试修复它,因为编译器提供但最终导致更多错误.我应该如何在这里使用向后兼容性?我在做什么错了?请帮助,谢谢!

ios swift swift3 xcode8

8
推荐指数
1
解决办法
4673
查看次数

Xcode 8错误:无法解析调试映射:没有这样的文件或目录

我只是在之前的工作版本7上安装了新的Xcode 8.我尝试构建一个现有的ObjC应用程序并获得了持久的链接器错误:

 error: cannot parse the debug map for "/Users/--- 
 Library/Developer/Xcode/DerivedData/Sunset3-
 dejxrzrmfgomxxcrzloplmsozads/Build/Products/Debug-
 iphonesimulator/Sunset3.app/Sunset3": No such file or directory
Run Code Online (Sandbox Code Playgroud)

搜索,以前的修复程序在这里不起作用:

1) Reboot after install
2) Xcode Clean Project
3) Turn off bitcode build options
4) for good measure, I tried targeting into 9.0, 9.3, 10.0 - no difference in outcome
5) Also tried three different simulator targets
Run Code Online (Sandbox Code Playgroud)

对日志的进一步评估显示了一个未被前一个IDE标记的dup对象:

duplicate symbol _sharedPlaceDate in:
/Users/irampil/Library/Developer/Xcode/DerivedData/Sunset3-dejxrzrmfgomxxcrzloplmsozads/Build/Intermediates/Sunset3.build/Debug-iphonesimulator/Sunset3.build/Objects-normal/x86_64/ViewController.o
/Users/irampil/Library/Developer/Xcode/DerivedData/Sunset3-dejxrzrmfgomxxcrzloplmsozads/Build/Intermediates/Sunset3.build/Debug-iphonesimulator/Sunset3.build/Objects-normal/x86_64/GraphClass.o
Run Code Online (Sandbox Code Playgroud)

ld:1个用于体系结构x86_64 clang的重复符号:错误:链接器命令失败,退出代码为1(使用-v查看调用)

在XCode8中创建的de novo ObjC项目编译和链接就好了.关于修复重复对象的其他想法?

linker-errors xcode8

8
推荐指数
1
解决办法
5483
查看次数

Xcode在特定项目上崩溃

当我试图打开一个特定的项目时Xcode它崩溃了这个错误消息(部分):

Process:               Xcode [729]
Path:                  /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier:            com.apple.dt.Xcode
Version:               8.1 (11544)
Build Info:            IDEFrameworks-11544000000000000~4
App Item ID:           497799835
App External ID:       819397000
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           Xcode [729]
User ID:               501

Date/Time:             2016-11-06 18:39:39.261 +0200
OS Version:            Mac OS X 10.12.1 (16B2555)
Report Version:        12
Anonymous UUID:        E3BEFD49-5451-DC5B-81D3-2BD8B1F4987F


Time Awake Since Boot: 140 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception …
Run Code Online (Sandbox Code Playgroud)

xcode xcode8

8
推荐指数
3
解决办法
7065
查看次数

WCSessionDelegate:sessionDidBecomeInactive和sessionDidDeactivate已被标记为不可用,但是是必需的

我刚刚使用Xcode 8的转换功能将Swift 2应用程序转换为Swift 3.

我的代码有一个标记为的类WCSessionDelegate.

在Swift 2中,它编译时没有方法sessionDidBecomeInactivesessionDidDeactivate.

如果我编译Swift 3版本,编译器会抱怨我的类不符合协议WCSessionDelegate,这显然是正确的.
然后它提供插入两个函数的存根:

public func sessionDidBecomeInactive(_ session: WCSession) { }  
public func sessionDidDeactivate(_ session: WCSession) { }
Run Code Online (Sandbox Code Playgroud)

插入这些存根后,会报告以下错误:

Cannot override 'sessionDidBecomeInactive' which has been marked unavailable  
Cannot override 'sessionDidDeactivate' which has been marked unavailable  
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

watchkit wcsession swift3 xcode8

7
推荐指数
1
解决办法
1812
查看次数

xcode更新到8.0后,React Native run-ios构建失败.

好的,所以我已经在这个React Native项目上工作了几个星期,现在没有任何问题.我最近更新到xCode 8.0并且RN构建失败了.当我执行"react-native run-ios"时,它会返回"BUILD FAILED"错误.我通过xCode尝试了它,它返回类似的东西.我试着环顾四周,但似乎无法找到解决方案.我敢肯定,这可能是一些在xcode中发生变化的设置.

通过终端运行

>     ** BUILD FAILED **
> 
> 
> The following build commands failed:  CompileC
> /Users/macuser/Documents/FreeLance/theHaps/DaHAPS/ReactApp/ios/build/Build/Intermediates/RCTWebSocket.build/Debug-iphonesimulator/RCTWebSocket.build/Objects-normal/x86_64/RCTSRWebSocket.o
> RCTSRWebSocket.m normal x86_64 objective-c
> com.apple.compilers.llvm.clang.1_0.compiler (1 failure)
> /Users/macuser/Documents/FreeLance/theHaps/DaHAPS/ReactApp/node_modules/promise/lib/done.js:10
>       throw err;
>       ^
> 
> Error: xcodebuild process exited with code 65
>     at ChildProcess.<anonymous> (runIOS.js:102:14)
>     at emitTwo (events.js:100:13)
>     at ChildProcess.emit (events.js:185:7)
>     at maybeClose (internal/child_process.js:850:16)
>     at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5)
Run Code Online (Sandbox Code Playgroud)

通过xcode运行:

Xcode错误截图

谢谢!

xcode react-native xcode8

7
推荐指数
1
解决办法
6508
查看次数

在Swift 3中使用NSUndoManager和.prepare(withInvocationTarget :)

我正在将Xcode 7/Swift 2.2 mac OS X项目迁移到Xcode 8/Swift 3,我在我的视图控制器类MyViewController中使用undoManager遇到了一个问题,它有一个函数undo.

在Xcode 7/Swift 2.2中,这很好用:

undoManager?.prepareWithInvocationTarget(self).undo(data, moreData: moreData)
undoManager?.setActionName("Change Data)
Run Code Online (Sandbox Code Playgroud)

在Xcode 8/Swift 3中,使用https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/AdoptingCocoaDesignPatterns.html中推荐的模式

这应该改为:

if let target = undoManager?.prepare(withInvocationTarget: self) as? MyViewController {
    target.undo(data, moreData: moreData)
    undoManager?. setActionName("Change Data")
}
Run Code Online (Sandbox Code Playgroud)

但是,向MycastController的向下转换始终失败,并且未注册撤消操作.

我错过了一些明显的东西,或者这是一个错误?

macos nsundomanager swift3 xcode8

7
推荐指数
1
解决办法
1823
查看次数

当我在调试中放置变量时,Xcode 8不显示任何变量值

在调试模式下,我试图查看变量的值,但它没有显示任何内容.我用Xcode8.一起使用Objective - CSwift分类.我没有objective-C部分问题,我可以清楚地看到价值观.我阅读了很多帖子和答案,但没有一个帮助我.我尝试在Swift编译器中设置优化级别=无BuildSettings.还尝试将o2和-O0添加到其他linker flags.我检查了编辑方案,它处于调试模式.所以我卡住了.顺便说一句,如果我用快速语言创建项目,我可以看到变量的值.提前致谢.

debugging ios swift xcode8

7
推荐指数
1
解决办法
1377
查看次数

崩溃后的Xcode错误

当我创建一个版本来测试我的iPhone xcode 8崩溃时,当我重新打开xcode时突然发现这个错误来自于无处.

命令/Applications/Xcode.app/Contents/Developer/usr/bin/ibtool失败,退出代码255的工具可能已经坠毁.请在http://bugreport.apple.com上使用上述输出提交错误报告,并附上ibtool,ibtoold,Xcode和Interface Builder Cocoa Touch Tool在此失败时创建的所有崩溃日志.这些日志可以在〜/ Library/Logs/DiagnosticReports或/ Library/Logs/DiagnosticReports中找到.

任何人都可以告诉我如何解决这个问题.

xcode ios xcode8

7
推荐指数
1
解决办法
2786
查看次数

Swift 3:无法使用类型错误的参数列表调用dataTask

我是iOS的初学者.我搜索过网页,找不到可以解决问题的答案.坚持并且不知道该怎么做以及如何搜索解决方案.

我正在按照基于Swift 2的教程进行操作.以下方法显示错误.

func downloadBooks(bookTitle: String) {
    let stringURL = "GET https://www.googleapis.com/books/v1/volumes?q=\(bookTitle)"

    guard let URL = URL(string: stringURL) else {
        print("url problems")
        return
    }

    let urlRequest = NSMutableURLRequest(url: URL)
    let session = URLSession.shared

    let task = session.dataTask(with: urlRequest) { (data: Data?, response: URLResponse?, error: Error?) in

    }

    task.resume()
}
Run Code Online (Sandbox Code Playgroud)

我做了Xcode建议的所有调整,但没有进一步的提示.

而且,教程中的原始代码部分是这样的:

guard let URL = NSURL(string: stringURL) else {
    print("url problems")
    return
}
Run Code Online (Sandbox Code Playgroud)

然后Xcode建议添加as URL如下:

let urlRequest = NSMutableURLRequest(url: URL as URL)
Run Code Online (Sandbox Code Playgroud)

这两个版本都没有显示错误.那么区别是什么呢?我应该使用哪一个? …

xcode ios swift swift3 xcode8

7
推荐指数
1
解决办法
5265
查看次数

UIColor与IB颜色(颜色配置文件问题)

我正在使用XCode 8.2.1.我刚刚了解了颜色配置文件,并且RGB值不是通用的.但仍然无法理解如何在代码中使其正确.在Interface Builder中,我为标签选择了预定义的"深灰色".通用RGB配置文件中为(85,85,85).同样在代码中我将另一个标签颜色设置为[UIColor darkGrayColor].我希望它们具有相同的颜色,但它们是不同的.

我用的方法

- (BOOL)getRed:(nullable CGFloat *)red green:(nullable CGFloat *)green blue:(nullable CGFloat *)blue alpha:(nullable CGFloat *)alpha
Run Code Online (Sandbox Code Playgroud)

获取RGB值.对于在IB中设置颜色的标签,我看到实际上(104,104,104)的值对应于当切换到设备RGB配置文件时IB中的值.所以似乎在代码中使用了设备RGB配置文件.

所以我的问题是:

  1. 为什么标准的"深灰色"在IB和代码中设置时有所不同?
  2. 如何在代码中使用Generic RGB配置文件,所以我可以使用Interface Builder匹配颜色值?

colors interface-builder uicolor ios xcode8

7
推荐指数
1
解决办法
1199
查看次数