我的项目与cocoapods 1.0.1和Alamofire分支"swift3"完美配合.但是今天我已经将cocoapods更新到1.1.0并将alamofire从Master分支更新到版本4.0.1并且在x86-64(模拟器)构建时遇到了链接器错误:
架构x86_64的未定义符号:Alamofire.request(Alamofire.URLConvertible,方法:Alamofire.HTTPMethod,参数:[Swift.String:Any] ?, encoding:Alamofire.ParameterEncoding,headers:[Swift.String:Swift.String]?) - > Alamofire.DataRequest",引用自
Swift.String的协议见证表:Alamofire中的Alamofire.URLConvertible",引自:
但对于设备(手臂目标),一切都很好.
试图解体pod,删除所有脚本和文件夹并重新安装 - 但它没有帮助.
我将我的 swift 2.2 项目转换为 swift 3.0。更新我的 pod 文件后,出现此错误。请参阅所附图片。
这是 pod 文件内容:
我不知道我缺少哪个部分导致我出现此错误。
谁能帮我吗 ?
提前致谢。
下面是我的代码,它在 iOS 9 之前一直可以正常工作。
- (NSData *)encryptWithDataPublicKey:(NSString*)data keyTag:(NSString*)tag
{
SecKeyRef publicKey = NULL;
NSData *publicTag = [NSData dataWithBytes:[tag UTF8String] length:[tag length]];
NSMutableDictionary *queryPublicKey =
[[NSMutableDictionary alloc] init];
[queryPublicKey setObject:(__bridge id)kSecClassKey forKey:(__bridge id)kSecClass];
[queryPublicKey setObject:publicTag forKey:(__bridge id)kSecAttrApplicationTag];
[queryPublicKey setObject:(__bridge id)kSecAttrKeyTypeRSA forKey:(__bridge id)kSecAttrKeyType];
[queryPublicKey setObject:[NSNumber numberWithBool:YES] forKey:(__bridge id)kSecReturnRef];
OSStatus status = SecItemCopyMatching
((__bridge CFDictionaryRef)queryPublicKey, (CFTypeRef *)&publicKey);
NSData *encodedData = nil;
if (status == noErr && publicKey) {
NSData *dataToEncrypt = [data dataUsingEncoding:NSUTF8StringEncoding];
encodedData = [self encryptData:dataToEncrypt withKeyRef:publicKey];
CFRelease(publicKey);
}
return encodedData;
} …Run Code Online (Sandbox Code Playgroud) 我有一个 UIAlertView,其中包括一个 UITextField。警报视图有两个按钮。一个正常的“关闭”按钮和另一个“添加”按钮。如果 UITextField 不为空,“添加”按钮应该是可点击的。如果该字段为空,我不知道如何“实时”检查。如果单击了按钮,我只看到了检查 textField 的可能性。但这不是想要的(如果 xtField 为空,“添加”按钮应该变灰)。你有解决办法吗?谢谢你的努力!
我正在使用 Swift 3 和 Xcode 8
我试图更新我用swift 2制作的基本天气应用程序到swift 3这是我的代码:
func getWeather(city: String) {
let path = "http://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=095711373620570aa92ee530246dc8af"
let url = NSURL(string: path)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!) { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
print(">>>> \(data)")
}
Run Code Online (Sandbox Code Playgroud)
和NSURLSession.sharedSession(第5行)和NSURLResponse(第6行)打印出错误
我想出了如何解除系统警报,但我无法等待它显示,因为应用程序没有看到系统警报.我尝试使用app.debugDescription和app.alerts.count进行调试,但没有运气.
在我的应用程序中,当用户终止应用程序时,我需要向服务器发送一些指令。在applicationWillTerminate函数中,我尝试发送它,但是它从未发送到服务器。我尝试使用Alamofire和本机URLSession,但是它不起作用。有人知道我怎么发送吗?我用这个代码
let request = "\(requestPrefix)setDriverOrderStatus"
if let url = URL(string:request) {
var parameters : [String : String] = [:]
parameters["access_token"] = UserSession.accessToken
parameters["driver_id"] = UserSession.userID
parameters["status"] = status
var req = URLRequest(url: url)
req.httpMethod = HTTPMethod.put.rawValue
do {
req.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted)
} catch let error {
print(error.localizedDescription)
}
_ = URLSession.shared.dataTask(with: req, completionHandler: { data, response, error in
guard error == nil else {
print(error ?? "error")
return
}
guard let data = data else { …Run Code Online (Sandbox Code Playgroud) 请帮我!我试图调用我在GameScene类中声明的函数,在更新函数中.但是它不能识别这个函数,我想知道这是否与该类或其他东西有关,因为我想每帧运行该函数(但必须为每个spriteCopy更新,具体取决于它自己的运动)确保精灵副本全部遵循该功能并继续,无限.
预先感谢您的任何帮助.
这是函数的代码,它在某种程度上起作用:
func touchUp(atPoint pos : CGPoint) {
if let spriteCopy = self.sprite?.copy() as! SKShapeNode? {
spriteCopy.fillColor = UIColor.white
spriteCopy.position = initialTouch
spriteCopy.physicsBody?.restitution = 0.5
spriteCopy.physicsBody?.friction = 0
spriteCopy.physicsBody?.affectedByGravity = false
spriteCopy.physicsBody?.linearDamping = 0
spriteCopy.physicsBody?.angularDamping = 0
spriteCopy.physicsBody?.angularVelocity = 0
spriteCopy.physicsBody?.isDynamic = true
spriteCopy.physicsBody?.categoryBitMask = 1 //active
spriteCopy.isHidden = false
touchUp = pos
xAxisLength = initialTouch.x - touchUp.x
yAxisLength = initialTouch.y - touchUp.y
xUnitVector = xAxisLength / distanceBetweenTouch * power * 300
yUnitVector = yAxisLength / distanceBetweenTouch * power …Run Code Online (Sandbox Code Playgroud) 我到处搜索,似乎无法找到实时更新标签的明确答案.
如何在UILabel不使用按钮的情况下更新(实时).例如,我有一个文本字段和一个UIlabel连接到view controller.
一旦用户开始输入,就会textfield在UI标签上实时显示相同的文本.结果,这消除了使用按钮来更新标签.我该怎么做呢?
这是我的JSON结构(忽略用于发送电子邮件的用户名,用于测试)
{
"Username" : {
"Username" : {
"email" : "test@gmail.com"
}
},
"uid_0" : {
"Song List" : [ "The National Anthem" ]
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用Swift和Xcode制作一个非常简单的应用程序。基本上,用户在注册后登录其帐户。用户可以从那里从乐队的唱片中选择自己喜欢的歌曲,放入一个空数组。然后,用户可以单击将其选择到包含他们添加的歌曲的表视图控制器的按钮。用户添加歌曲的方式是通过视图控制器,该视图控制器包含带有歌曲名称和每个歌曲名称旁边的按钮的标签。当用户单击按钮时,标签将添加到阵列中。
我希望能够将数组保存到Firebase,以便每个用户都有自己喜欢的歌曲。我已经做了相当多的研究,找不到任何可以将我引向正确方向的东西,因为这非常简单。标签没有键,实际上只是将标签添加到数组中。
我也安装了Firebase存储器和数据库Pod,并且能够将映像上传到fire base并让用户将映像保存到其特定帐户,但是如何对阵列执行相同操作?这是我的数组代码,因此您可以了解其工作原理。
import UIKit
import Firebase
import FirebaseStorage
import FirebaseAuth
import LocalAuthentication
import FirebaseDatabase
//var refSongs: DatabaseReference! {
// return Database.database().reference()
//}
var list = [String]()
class SongsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
var ref: DatabaseReference!
override func viewDidLoad() {
super.viewDidLoad()
self.ref = Database.database().reference()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> …Run Code Online (Sandbox Code Playgroud) xcode8 ×10
ios ×7
swift ×5
swift3 ×5
xcode ×3
alamofire ×2
ios10 ×2
firebase ×1
nsurl ×1
nsurlsession ×1
objective-c ×1
request ×1
seckeyref ×1
sprite-kit ×1
uialertview ×1
uitextfield ×1
url ×1
xctest ×1