我有一个来自在线数据库的字符串数组,我试图确定最常用的单词.数组内部的值会有所不同,但我想查看我正在使用的任何集合或单词中最常见的单词.如果理论上我有一个以下阵列......
NSArray *stringArray = [NSArray arrayWithObjects:@"Duck", @"Duck", @"Duck", @"Duck", @"Goose"];
Run Code Online (Sandbox Code Playgroud)
如何遍历此数组以确定最常见的字符串,这显然是"鸭子"?
我不是问如何将NSErrorPointer传递给函数,而是如何接收它并使用它.我找不到任何关于此的文件.像这样的东西:
func doSomething(error: NSErrorPointer) {
error = NSError(...);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码给出了
无法分配给'let'值'错误'
我正在尝试在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我应该在哪里设置我的视图?
我需要简单的解释为什么我toInt()用于将字符串转换为整数.
我什么时候需要使用Int(variable)而不是variable.toInt()
为什么当我创建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) 我有这个代码来验证电话号码,但它看起来有点尴尬.我猜这是一个更好的方法来解决这个问题.我怎样才能提高效率呢?
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) 在Swift中,我想在按下按钮B时更改按钮A的标题.
我sender.ButtonA.setTitle("Title", forState: UIControlState.Normal)在IBAction按钮B下试过但它无法工作..反正只是猜测..
该应用程序运行正常,但一旦我点击chipmunkButton应用程序崩溃并提供以下错误:
错误: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) 我在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的情况,因为这_意味着编译器会忽略该值?对于第一个元素为零的情况,我有一个单独的案例.
为了记录,看起来我的代码仍然按照我的预期工作,但我想确定,我无法在任何地方找到任何文档.
我试图理解该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()。) …