迁移到Swift 2之后,我遇到了一个错误,说明我现在应该使用@convention(c)(T) - > U.我尝试了排列,但到目前为止还没有运气.
func foo(context: AnyObject?, width: CGFloat) -> Int {
}
let bar = unsafeBitCast(foo, CFunctionPointer<(UnsafeMutablePointer<Void>, Float) -> Int>.self)
Run Code Online (Sandbox Code Playgroud) 在这个奇怪的例子中,有人创建了一个新类型,它实际上只是一个字符串:
type CustomType string
const (
Foobar CustomType = "somestring"
)
func SomeFunction() string {
return Foobar
}
Run Code Online (Sandbox Code Playgroud)
但是,此代码无法编译:
不能在返回参数中使用Foobar(类型CustomType)作为类型字符串
你如何修复SomeFunction,以便它能够返回Foobar("somestring")的字符串值?
我设置了我的应用程序,以便能够使用firebase发送Apple Notifications,并且我使用控制台验证了它的工作原理.现在我想做一个建立在APN之上的电话认证.
所以我写了这个:
PhoneAuthProvider.provider().verifyPhoneNumber(phoneNumber) { verificationID, error in
if error != nil {
print("Verification code not sent \(error!)")
} else {
print ("Successful.")
}
Run Code Online (Sandbox Code Playgroud)
我得到:
Error Domain=FIRAuthErrorDomain Code=17999 "An internal error has occurred, print and inspect the error details for more information." UserInfo={NSUnderlyingError=0x170046db0 {Error Domain=FIRAuthInternalErrorDomain Code=3 "(null)" UserInfo={FIRAuthErrorUserInfoDeserializedResponseKey={
code = 500;
message = "<null>";
}}}, error_name=ERROR_INTERNAL_ERROR, NSLocalizedDescription=An internal error has occurred, print and inspect the error details for more information.}
Run Code Online (Sandbox Code Playgroud)
任何的想法?我应该提交针对firebase的错误吗?
我正在使用iOS SDK 4.0.0(我能找到最新的zip.)
更新:
加入我禁用方法混写FirebaseAppDelegateProxyEnabled来info.plist并将其设置为 …
apple-push-notifications ios firebase firebase-authentication
为什么这段代码会编译?我认为ctor返回的rvalues不在内存中,因此不能用作左值.
#include <iostream>
#include <vector>
class Y {
public :
explicit Y(size_t num = 0)
: m_resource {std::vector<int>(num)}
{
}
std::vector<int> m_resource;
};
int main(int argc, const char * argv[]) {
Y(1) = Y(0); // WHAT?!?
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我将qemu进程固定到扩展坞然后退出并再次单击它后,我收到以下错误.有没有办法直接从Finder启动模拟器而不先去Android Studio?
/Users/johnny/Develop/android/sdk/tools/qemu/darwin-x86_64/qemu-system-x86_64 ; exit;
dyld: Library not loaded: libQt5Widgets.5.dylib
Referenced from: /Users/johnny/Develop/android/sdk/tools/qemu/darwin-x86_64/qemu-system-x86_64
Reason: image not found
[1] 48616 trace trap /Users/johnny/Develop/android/sdk/tools/qemu/darwin-x86_64/qemu-system-x86_6
[Process completed]
Run Code Online (Sandbox Code Playgroud) 找不到属性jni和源设置'main'
apply plugin: 'com.android.model.application'
model {
android {
compileSdkVersion = 21
buildToolsVersion = "22.0.1"
defaultConfig.with {
applicationId = "com.example.native_activity"
minSdkVersion.apiLevel = 9
targetSdkVersion.apiLevel = 9
}
sourceSets.main {
jni.srcDirs = [] // This prevents the auto generation of Android.mk
jniLibs.srcDir = 'src/main/libs'
// This is not necessary unless you have precompiled libraries in your project.
}
}
Run Code Online (Sandbox Code Playgroud)
这是堆栈跟踪:
Caused by: org.gradle.model.internal.core.ModelRuleExecutionException: Exception thrown while executing model rule: model.android
at org.gradle.model.internal.registry.DefaultModelRegistry.fireMutation(DefaultModelRegistry.java:485)
at org.gradle.model.internal.registry.DefaultModelRegistry.access$1500(DefaultModelRegistry.java:45)
at org.gradle.model.internal.registry.DefaultModelRegistry$RunModelAction.apply(DefaultModelRegistry.java:1464)
at org.gradle.model.internal.registry.DefaultModelRegistry.transitionTo(DefaultModelRegistry.java:341)
at org.gradle.model.internal.registry.DefaultModelRegistry.transition(DefaultModelRegistry.java:419)
at org.gradle.model.internal.registry.DefaultModelRegistry.atStateOrMaybeLater(DefaultModelRegistry.java:183) …Run Code Online (Sandbox Code Playgroud) 我不明白为什么我被迫使用 aclass而不是 astruct
这有效,但我必须使用构造函数:
class Token {
var i: Int
var prev: Token?
var next: Token?
init(i: Int) {
self.i = i
}
}
Run Code Online (Sandbox Code Playgroud)
这并不能给出下面烦人的信息。
struct Token {
var i: Int
var prev: Token?
var next: Token?
}
Run Code Online (Sandbox Code Playgroud)
错误:值类型“令牌”不能具有引用自身的存储属性
Swift 有什么理由struct区别对待 a吗?
我正在尝试使用Swift中的vDSP API来使用Accelerate框架.显然我做错了,虽然编译器给了我各种警告
var srcAsFloat:CConstPointer<CFloat> = CFloat[](count: Int(width*height), repeatedValue: 0)
var dstAsFloat = CFloat[](count: Int(width*height), repeatedValue: 0)
if shouldClip {
var min:CFloat = 0.0
var max:CFloat = 255.0
var l:vDSP_Stride = Int(width*height)
vDSP_vclip(CConstPointer<CFloat>(&dstAsFloat), vDSP_Stride(1), CConstPointer<CFloat>(&min), CConstPointer<CFloat>(&max), CMutablePointer<CFloat>(&dstAsFloat), vDSP_Stride(1), l)
}
Run Code Online (Sandbox Code Playgroud)
错误:
error: could not find an overload for 'init' that accepts the supplied arguments
vDSP_vclip(CConstPointer<CFloat>(&dstAsFloat),
vDSP_Stride(1),
CConstPointer<CFloat>(&min),
CConstPointer<CFloat>(&max),
CMutablePointer<CFloat>(&dstAsFloat),
vDSP_Stride(1),
l) –
Run Code Online (Sandbox Code Playgroud)
我试图摆脱它,但到目前为止,没有运气.
在下面的示例中:
package main
import (
"fmt"
"log"
"net/http"
"net/http/httputil"
"net/url"
)
func main() {
p := new(Proxy)
//host := "www.google.com" // WORKS AS EXPECTED
host := "www.apple.com" // GIVES AN ERROR
u, err := url.Parse(fmt.Sprintf("http://%v/", host))
if err != nil {
log.Printf("Error parsing URL")
}
p.proxy = httputil.NewSingleHostReverseProxy(u)
http.Handle("/", p)
log.Fatal(http.ListenAndServe("localhost:8000", nil))
}
type Proxy struct {
proxy *httputil.ReverseProxy
}
func (p *Proxy) ServeHTTP(w http.ResponseWriter, r *http.Request) {
p.proxy.ServeHTTP(w, r)
}
Run Code Online (Sandbox Code Playgroud)
将Chrome链接到'localhost:8000'时,将'www.google.com'与'www.apple.com'交换会导致此错误:
无效的网址
请求的URL"/"无效.参考编号#9.a61a32b8.1438231668.41733295
为www.apple.com做一点挖掘,我得到:
? ~ curl --ipv4 -v …Run Code Online (Sandbox Code Playgroud) 我在dylib周围创建了自己的包装器.然后我创建了一个头文件来从这个库中导出符号.我遇到了这个标头在包装器中的情况,而modulemap找不到它.
> MyFramework (project directory)
> MyFramework.xcconfig
MODULEMAP_FILE[sdk=macosx*] = $(SRCROOT)/MyFramework/macosx.modulemap
> macosx.modulemap:
module MyFramework [system] {
header "MyFramework.h" // CAN NOT FIND THE FILE
export *
}
> MyFramwork.h (contains a bunch of declarations)
Run Code Online (Sandbox Code Playgroud)
我找到了在SDK中指向绝对路径的示例,但我真的不想在我的本地驱动器上硬编码我的项目的路径.
我尝试用$(SRCROOT)/ MyFramework和其他相关选项为文件名加前缀,但没有运气.
我应该用什么呢?