小编Aha*_*iff的帖子

一元运算符' - '不能应用于'@lvalue Int?'类型的操作数.(又名'@lvalue Optional <Int>')

我刚刚将我的应用程序代码更新到最新版本的Swift,我有这个功能:

func setupGraphDisplay() {

        //Use 7 days for graph - can use any number,
        //but labels and sample data are set up for 7 days
        //let noOfDays:Int = 7

        //1 - replace last day with today's actual data
        graphView.graphPoints[graphView.graphPoints.count-1] = counterView.counter

        //2 - indicate that the graph needs to be redrawn
        graphView.setNeedsDisplay()

        maxLabel.text = "\((graphView.graphPoints).max()!)"
        print((graphView.graphPoints).max()!)

        //3 - calculate average from graphPoints
        let average = graphView.graphPoints.reduce(0, +)
            / graphView.graphPoints.count
        averageWaterDrunk.text = "\(average)"

        //set up labels
        //day of week labels are …
Run Code Online (Sandbox Code Playgroud)

swift swift3

19
推荐指数
1
解决办法
2万
查看次数

无法弄清楚为什么我在Swift iOS应用程序代码中获得"Class ViewController没有初始化程序"错误

我试图在我的iOS应用程序中制作一个教程屏幕,用户滑过几张图片以了解该应用程序.一切都很好,除非我构建我的项目,我在第一行代码上得到以下错误:

ViewController类没有初始值设定项

我做错了什么?

我的ViewController.swift代码如下

import UIKit

//line below is where I get the error

class ViewController: UIViewController, UIPageViewControllerDataSource {

//end

var pageViewController: UIPageViewController
var pageTitles: NSArray!
var pageImages: NSArray!

override func viewDidLoad() {
    super.viewDidLoad()

    self.pageTitles = NSArray(objects: "", "", "")
    self.pageImages = NSArray(objects: "page1", "page2", "page3")

    self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageViewController") as!
    UIPageViewController

    self.pageViewController.dataSource = self

    var startVC = self.viewControllerAtIndex(0) as ContentViewController
    var viewControllers = NSArray(object: startVC)

    self.pageViewController.setViewControllers(viewControllers as [AnyObject], direction: .Forward, animated: true, completion: nil)

    self.addChildViewController(self.pageViewController)
    self.view.addSubview(self.pageViewController.view)
    self.pageViewController.didMoveToParentViewController(self)

}

override func …
Run Code Online (Sandbox Code Playgroud)

iphone xcode ios swift xcode6

16
推荐指数
2
解决办法
1万
查看次数

无法构建Objective-C模块'JSQMessagesViewController'

我有两个项目都使用JSQMessagesViewController,但在其中一个我收到错误:"无法构建Objective-C模块'JSQMessagesViewController'",而另一个工作正常......两者之间几乎没有区别项目,我如何让JSQMessagesViewController工作,因为它对我的应用程序至关重要.谢谢.

xcode objective-c swift jsqmessagesviewcontroller

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

"无法调用非功能类型的值"

我刚刚下载了Xcode 8 Beta,因此我可以在我的应用程序中包含一些新的iOS 10框架.但是,在将我的代码从Swift 2转换为Swift 3的过程中,我遇到了几个错误.除了一个超级烦人之外我修好了.

我收到错误:

无法调用非函数类型'JSQMessagesCollectionView!'的值 在以下代码行:

let cell = super.collectionView(collectionView, cellForItemAtIndexPath: indexPath) as! JSQMessagesCollectionViewCell
Run Code Online (Sandbox Code Playgroud)

这是我的整个上下文功能:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell{
    let cell = super.collectionView(collectionView, cellForItemAtIndexPath: indexPath) as! JSQMessagesCollectionViewCell

    let message = messages[indexPath.item]

    if message.senderId == senderId {
        cell.textView!.textColor = UIColor.whiteColor()
    } else {
        cell.textView!.textColor = UIColor.blackColor()
    }

    return cell
}
Run Code Online (Sandbox Code Playgroud)

有人有想法吗?

Ps如果这有帮助,这是我的整个代码块:

import UIKit
import Firebase
import JSQMessagesViewController

class ChatViewController: JSQMessagesViewController {

    // MARK: Properties

    var rootRef = FIRDatabase.database().reference()
    var messageRef: FIRDatabaseReference!

    var messages …
Run Code Online (Sandbox Code Playgroud)

swift jsqmessagesviewcontroller

6
推荐指数
1
解决办法
2万
查看次数

AttributeError:模块'socket'没有属性'AF_PACKET'

我正在使用Python构建数据包嗅探程序,但是我已经遇到了速度提升.出于某种原因,我认为套接字没有正确导入,因为我在运行程序时收到以下消息:AttributeError: module 'socket' has no attribute 'AF_PACKET'

我正在使用OS X和Pycharm是我的IDE,如果有帮助我正在运行最新版本的Python.

无论如何,到目前为止我的完整程序是:

import struct
import textwrap
import socket

def main():
    connection = socket.socket(socket.AF_PACKET, socket.SOCKET_RAW, socket.ntohs(3))

    while True:
        rawData, address = connection.recvfrom(65535)
        reciever_mac, sender_mac, ethernetProtocol, data = ethernet_frame(rawData)
        print('\nEthernet Frame: ')
        print('Destination: {}, Source: {}, Protocol: {}'.format(reciever_mac, sender_mac, ethernetProtocol))

# Unpack ethernet frame
def ethernet_frame(data):
    reciever_mac, sender_mac, protocol = struct.unpack('! 6s 6s H', data[:14])
    return getMacAddress(reciever_mac), getMacAddress(sender_mac), socket.htons(socket), data[14:]

# Convert the Mac address from the jumbled up form from above into …
Run Code Online (Sandbox Code Playgroud)

python sockets python-3.x

5
推荐指数
1
解决办法
8383
查看次数

使用 Swift 3 时的“InvalidPathValidation”

我有一个使用 Firebase 在用户之间发送和接收消息的应用程序。在将我的代码更新到新的 Swift 3 以便我可以将 iOS 10 的酷炫新功能添加到我的应用程序的过程中,我遇到了几个错误。我能够在运行时修复除此之外的大多数问题:

Terminating app due to uncaught exception 'InvalidPathValidation', reason: '(child:) Must be a non-empty string and not contain '.' '#' '$' '[' or ']''
Run Code Online (Sandbox Code Playgroud)

我不知道是什么原因造成的。用户登录时,其用户 ID 会打印到控制台,但只要按下登录按钮,我的应用程序就会崩溃。在我更新到 Swift 3 之前,这个错误是不存在的,实际上是在我修复了应用程序另一部分的错误后才出现的。

无论如何,我的应用程序中只有两个主要类:LoginViewControllerChatViewController

这是代码LoginViewController

import UIKit
import Firebase

class LoginViewController: UIViewController {

    // MARK: Properties
    var ref: FIRDatabaseReference! // 1
    var userID: String = ""

    override func viewDidLoad() {
        super.viewDidLoad()
        ref = FIRDatabase.database().reference() // 2
    }

    @IBAction func …
Run Code Online (Sandbox Code Playgroud)

ios firebase swift jsqmessagesviewcontroller swift3

5
推荐指数
1
解决办法
3106
查看次数

错误:'代理必须在收集用户位置时响应locationManager:didUpdateLocations:'

所以我想在用户点击按钮时收集用户位置,并稍后在我的应用中使用该位置.使用我当前的实现,当点击按钮时,应该提示用户允许共享位置,然后他们应该登录到应用程序(如果您想知道的话,通过Firebase匿名),并且应该打印用户位置信息到控制台.提示有效,但是在点击允许位置按钮后,我的应用程序终止due to uncaught exception 'NSInternalInconsistencyException'

原因是 'Delegate must respond to locationManager:didUpdateLocations:'

这很奇怪,因为didUpdateLocations:我的代码中有一个函数.

我不知道发生了什么,任何帮助表示赞赏.我的ViewController代码如下,谢谢!

/*
* Copyright (c) 2016 Ahad Sheriff
*
*/

import UIKit
import Firebase
import CoreLocation

class LoginViewController: UIViewController {

    // MARK: Properties
    var ref: FIRDatabaseReference! // 1
    var userID: String = ""

    var locationManager = CLLocationManager()

    override func viewDidLoad() {
        super.viewDidLoad()
        ref = FIRDatabase.database().reference() // 2
    }

    @IBAction func loginDidTouch(sender: AnyObject) {

        //ask user to enable location services
        locationManager.requestWhenInUseAuthorization()

        if CLLocationManager.locationServicesEnabled() {
            //collect user's …
Run Code Online (Sandbox Code Playgroud)

core-location mapkit swift

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

未知格式代码“x”

我正在用 Python 编写一个程序,所有代码看起来都不错,除非我从终端运行程序时收到以下错误消息:

Traceback (most recent call last):
  File "packetSniffer.py", line 25, in <module>
    main()
  File "packetSniffer.py", line 10, in main
    reciever_mac, sender_mac, ethernetProtocol, data = ethernet_frame(rawData)
  File "packetSniffer.py", line 17, in ethernet_frame
    return getMacAddress(reciever_mac), getMacAddress(sender_mac), socket.htons(protocol), data[14:]
  File "packetSniffer.py", line 21, in getMacAddress
    bytesString = map('{:02x}'.format, bytesAddress)
ValueError: Unknown format code 'x' for object of type 'str'
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我整个程序的代码,有人可以帮忙吗?

import struct
import textwrap
import socket

def main():
    connection = socket.socket(socket.AF_PACKET, socket.SOCK_RAW, socket.ntohs(3))

    while True:
        rawData, address = connection.recvfrom(65535)
        reciever_mac, sender_mac, …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

Swift 2无法将'[AnyObject]'类型的值转换为预期的参数类型'[UIViewController]?'

我正在研究Swift中的一个项目,我只是自动将代码转换Swift 1Swift 2.但是我收到错误:

无法将'[AnyObject]'类型的值转换为预期的参数类型'[UIViewController]?'

在下面的代码中:

self.pageViewController.setViewControllers(viewControllers as [AnyObject], direction: .Forward, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

我原本以为如果我说的话问题会解决,as!而不是as当我这样做时,我收到了以下信息:

从'NSArray'到'[AnyObject]'的强制演员总是成功; 你的意思是用'as'吗?

接下来是这个错误:

无法将'[AnyObject]'类型的值转换为预期的参数类型'[UIViewController]?'

这是我的完整上下文代码:

    override func viewDidLoad()
{
    super.viewDidLoad()

    self.pageTitles = NSArray(objects: "", "", "")
    self.pageImages = NSArray(objects: "page1", "page2", "page3")

    self.pageViewController = self.storyboard?.instantiateViewControllerWithIdentifier("PageViewController") as! UIPageViewController
    self.pageViewController.dataSource = self

    var startVC = self.viewControllerAtIndex(0) as ContentViewController
    var viewControllers = NSArray(object: startVC)

    self.pageViewController.setViewControllers(viewControllers as! [AnyObject], direction: .Forward, animated: true, completion: nil)

    self.pageViewController.view.frame = CGRectMake(0, 30, self.view.frame.width, self.view.frame.size.height - …
Run Code Online (Sandbox Code Playgroud)

uiviewcontroller ios swift swift2

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

使用Firebase iOS实施AdMob的问题

因此,自宣布iAD即将关闭以来,我开始寻找另一种通过广告从我的应用中获利的方法.随着谷歌5月18日对Firebase的更新(将AdMob与其集成非常吸引人),我决定在我的应用中添加一个简单的横幅广告.我按照文档(https://firebase.google.com/docs/admob/ios/quick-start#load_an_ad_into_gadbannerview)中的所有说明操作,但遗憾的是我遇到了一些严重错误.

这是文档中的代码,它几乎与我的应用程序代码相同:

import UIKit
import GoogleMobileAds

class ViewController: UIViewController {

  @IBOutlet weak var bannerView: GADBannerView!

override func viewDidLoad() {
  super.viewDidLoad()

  bannerView.adUnitID = "ca-app-pub-3940256099942544/2934735716"
  bannerView.rootViewController = self
  bannerView.loadRequest(GADRequest())
}

} 
Run Code Online (Sandbox Code Playgroud)

@IBOutlet weak var bannerView: GADBannerView!我收到错误:weak may only be applied to class and class-bound protocol types, not '<<error type>>这是我生命中从未见过的错误!

我也得到了Use of unresolved identifier 'GADRequest,我不明白,因为这是GADBannerView的内置方法......?

我使用cocoapods安装了所有必需的库,这应该不是问题.任何帮助,将不胜感激.谢谢!

admob ios firebase swift

2
推荐指数
3
解决办法
1888
查看次数

参数标签与任何可用的重载都不匹配

我的工作使用一个JSQMessagesViewController消息传递应用程序,我想给另一个变量,一个整数相关联score,其中每个消息(具有默认值,例如沿senderID,textdisplayName).这就是我尝试实现这个的方法:

func addMessage(id: String, text: String, displayName: String, score: Int) {

    // Make sure the character count is between 10 and 140, then add message to message list to display
    if (text.characters.count <= 10 || text.characters.count >= 140) {

    }
    else {
        let message = JSQMessage(senderId: id, displayName: displayName, text: text, score: score)
        messages.append(message)
    }

}
Run Code Online (Sandbox Code Playgroud)

但是,我收到以下错误消息:

Argument labels '(senderId:, displayName:, text:, score:)' do not match any available overloads

我只能假设这是因为有一些关于JSQMessage对象可以容纳的数据的预设定义,我只是不确定如何覆盖它以便我可以将其他变量与我的消息相关联.

注意:我试图直接更改JSQMessagesViewController框架本身(在JSQMessage.h …

swift jsqmessagesviewcontroller

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