小编nhg*_*rif的帖子

Objective-C:如何在数组中找到最常见的字符串?

我有一个来自在线数据库的字符串数组,我试图确定最常用的单词.数组内部的值会有所不同,但我想查看我正在使用的任何集合或单词中最常见的单词.如果理论上我有一个以下阵列......

NSArray *stringArray = [NSArray arrayWithObjects:@"Duck", @"Duck", @"Duck", @"Duck", @"Goose"];
Run Code Online (Sandbox Code Playgroud)

如何遍历此数组以确定最常见的字符串,这显然是"鸭子"?

objective-c nsstring nsarray

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

如何接收和使用NSErrorPointer

我不是问如何将NSErrorPointer传递给函数,而是如何接收它并使用它.我找不到任何关于此的文件.像这样的东西:

func doSomething(error: NSErrorPointer) {
    error = NSError(...);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码给出了

无法分配给'let'值'错误'

nserror swift

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

覆盖init(编码器aDecoder:NSCoder!)不能像预期的那样工作 - Swift

我正在尝试在Swift中子类化UITableViewCell.

我试过这个:

class CUISwitchTableViewCell: UITableViewCell {

    var label = UILabel()
    var switchControl = UISwitch()

    init(coder aDecoder: NSCoder!) {
        super.init(coder: aDecoder)

        // Set up UI
    }
}
Run Code Online (Sandbox Code Playgroud)

但是在调用时遇到编译错误super.init(coder: aDecoder):

必须调用超类'UITableViewCell'的指定初始值设定项

所以我理解的是我必须打电话init(style: UITableViewCellStyle, reuseIdentifier: String!),但是我将丢失Interface Builder中的所有设置.如果我没有覆盖initWithCoder我应该在哪里设置我的视图?

swift ios8

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

Int()和toInt()之间的快速差异

我需要简单的解释为什么我toInt()用于将字符串转换为整数.

我什么时候需要使用Int(variable)而不是variable.toInt()

swift

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

如何在引用数组之前初始化数组Swift

为什么当我创建arr时,一个数组然后尝试使用for-in循环用整数填充它,当我不初始化它时给我一个错误.我可以告诉它,当我写"var arr"时它被初始化了,但显然不是这样,如果不初始化它,写var var实际上是做什么的.

错误示例

var arr : [Int] //Error Message: Variable 'arr' passed by reference before being initialized
for i in 1...10 {
    arr += [i]
}
arr //Error Message: Variable 'arr' used before being initialized
Run Code Online (Sandbox Code Playgroud)

工作实例

var arr : [Int] = [] //Allocating memory?
for i in 1...10 {
    arr += [i]
}
arr
Run Code Online (Sandbox Code Playgroud)

arrays swift

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

电话号码验证

我有这个代码来验证电话号码,但它看起来有点尴尬.我猜这是一个更好的方法来解决这个问题.我怎样才能提高效率呢?

public static bool validTelephoneNo(string telNo)
{
    bool condition = false;
    while (condition == false)
    {
        Console.WriteLine("Enter a phone number.");
        telNo = Console.ReadLine();
        if (telNo.Length > 8)
        {
            if (telNo.StartsWith("+") == true)
            {
                char[] arr = telNo.ToCharArray();
                for (int a = 1; a < telNo.Length; a++)
                {
                    int temp;

                    try
                    {
                        temp = arr[a];
                    }

                    catch
                    {
                        break;
                    }

                    if (a == telNo.Length - 1)
                    {
                        condition = true;
                    }
                }
            }
        }
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

c#

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

按下按钮B时如何更改按钮A的标题?

在Swift中,我想在按下按钮B时更改按钮A的标题.

我sender.ButtonA.setTitle("Title", forState: UIControlState.Normal)在IBAction按钮B下试过但它无法工作..反正只是猜测..

button title swift

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

Swift:必需条件为false:file!= nil

该应用程序运行正常,但一旦我点击chipmunkBut​​ton应用程序崩溃并提供以下错误:

错误:AVAudioPlayerNode.mm:678: - [AVAudioPlayerNode scheduleFile:atTime:completionHandler:]:必需条件为false:file!= nil 2015-05-10 17:24:25.269 Pitch Perfect [50278:1897012]***终止app由于未被捕获的异常'com.apple.coreaudio.avfaudio',原因:'必要条件为false:file!= nil'

import UIKit
import AVFoundation

class PlaySoundsViewController: UIViewController {

    var audioRecording = AVAudioPlayer()
    var receivedAudio:RecordedAudio!
    var audioEngine:AVAudioEngine!
    var audioFile:AVAudioFile!



    func setupAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer  {


        //1
        var path = NSBundle.mainBundle().pathForResource(file as String, ofType: type as String)
        var url = NSURL.fileURLWithPath(path!)

        //2
        var error: NSError?

        //3
        var audioPlayer:AVAudioPlayer?
        audioPlayer = AVAudioPlayer(contentsOfURL: url, error: &error)

        //4
        return audioPlayer!
    }


    override func viewDidLoad() {
        super.viewDidLoad()


        audioRecording = AVAudioPlayer(contentsOfURL: receivedAudio.filePathUrl, error: nil)
        audioRecording.enableRate …
Run Code Online (Sandbox Code Playgroud)

null ios swift avaudioengine avaudioplayernode

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

下划线符号是否忽略或检查Swift中switch语句中的null?

我在Swift中有一个switch语句,如下所示:

switch tuple {
    case (let someObject, let current, nil):
        return true

    // Other cases...
}
Run Code Online (Sandbox Code Playgroud)

元组的类型的(SomeObject?, SomeObject, SomeObject?),和我说的英语是:匹配其中前两个元素的情况下不为零,而第三个(可选的)是零.

Xcode的7告诉我,因为我没有使用绑定someObject和current,我应该用下划线代替它.但是如果我用下划线替换元组中的第一个元素,它是否也会匹配第一个元素为nil的情况,因为这_意味着编译器会忽略该值?对于第一个元素为零的情况,我有一个单独的案例.

为了记录,看起来我的代码仍然按照我的预期工作,但我想确定,我无法在任何地方找到任何文档.

switch-statement swift optional-binding

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

为什么此Swift`defer`语句不能按预期工作?

我试图理解该defer语句在Swift 2中的工作方式,因为我显然无法正确理解它。

我有一个postprocess()只应在view实例化时调用的方法:

internal func postprocess() {
    assert(self.node.isViewInstantiated()) // <- this is failing using the first method
    ...
}
Run Code Online (Sandbox Code Playgroud)

我最初试图这样称呼它:

public var view: UIView {
    get {
        if !node.isViewInstantiated() {
            defer {
                postprocess()
            }
        }
        return node.view // node.view getter creates view
    }
}
Run Code Online (Sandbox Code Playgroud)

但这引起了断言。当我将其更改为此时,它开始工作:

public var view: UIView {
    get {
        if node.isViewInstantiated() {
            return node.view
        } else {
            var result = node.view
            postprocess()
            return result
        }
}
Run Code Online (Sandbox Code Playgroud)

(因此请注意,这node.view是自我说明isViewIntantiated()。) …

swift

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