我一直在寻找这个,但我似乎无法找到它.我知道如何解雇键盘,Objective-C但我不知道如何使用Swift?有人知道吗?
我有一个for循环,它检查一个数字是否是一个数字的因子,然后检查该因子是否为素数,然后将它添加到数组.根据原始号码,我会收到错误消息
致命错误:无法使用end <start形成范围
这几乎每次都会发生,但对于某些数字,它可以正常工作.我发现使用它的唯一数字是9,15和25.
这是代码:
let num = 16 // or any Int
var primes = [Int]()
for i in 2...(num/2) {
if ((num % i) == 0) {
var isPrimeFactor = true
for l in 2...i-1 {
if ((i%l) == 0) {
isPrimeFactor = false;
}//end if
}//end for
if (isPrimeFactor == true) {
primes.append(i)
}//end if
}//end if
}//end for
Run Code Online (Sandbox Code Playgroud) 我正在尝试将应用程序从Objective-C转换为Swift,但我找不到如何使用Swift在视图之间传递数据.我的Objective-C代码是
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
AnsViewController *ansViewController;
ansViewController = [storyBoard instantiateViewControllerWithIdentifier:@"ansView"];
ansViewController.num = theNum;
[self presentViewController:ansViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
它正在做的是它基本上取变量theNum,并将其传递给另一个视图控制器上的变量num.我知道这可能是一个简单的问题,但我对Swift非常困惑,所以如果有人能解释他们如何将其改为Swift,我将不胜感激!
谢谢
我试图在Swift 3中创建一个我在Swift 2中已有的范围,但它一直给我这个错误:
String may not be indexed with 'Int', it has variable size elements
这是我的代码:
let range = expireRange!.startIndex.advancedBy(n: 7) ..< expireRange!.startIndex.advancedBy(n: 16)
Run Code Online (Sandbox Code Playgroud)
expiredRange是一个 Range<Index>?
在Swift 2中,我有:
let range = expireRange!.startIndex.advancedBy(7)...expireRange!.startIndex.advancedBy(16)
Run Code Online (Sandbox Code Playgroud) 我正在制作一个有音乐播放器的应用程序.我有一段时间没有参与其中,但是我最后一次工作时它nowPlayingInfo
正在工作.现在,当我将其更新为Swift 3时,除进度条外,一切正常.
我在这里看到了几个类似的问题,谈到了竞争条件,它被某些东西所覆盖,但我似乎无法弄清楚是什么.我正在使用AVQueuePlayerif如果有帮助.
跳过和上一个按钮工作,专辑封面,标题和艺术家完美更新,但经过的时间只是没有更新.当我调试时,MPNowPlayingInfoPropertyElapsedPlaybackTimefrom MPNowPlayingInfoCenter.default().nowPlayingInfo显示正确的数字,但控制中心的实际屏幕不是.通常,进度停留在0:01并且不会移动.但是,如果我在我的应用程序中寻求使用滑块并返回控制中心,它会显示我寻找的时间但仍然保持不变.
这是我的setNowPlaying代码:
func setNowPlaying(_ dura: Float, timePlayed: Float) {
let s = songs[playbackInstance.currentSongIndex]
let albumArt = MPMediaItemArtwork.init(boundsSize: CGSize(width: 480, height: 360), requestHandler: { (size) -> UIImage in
return self.songImageView.image ?? #imageLiteral(resourceName: "WhiteMusic")
})
let songInfo: [String: Any]? = [
MPMediaItemPropertyTitle: s.name,
MPMediaItemPropertyArtist: s.artist,
MPMediaItemPropertyArtwork: albumArt,
MPMediaItemPropertyPlaybackDuration: dura,
MPNowPlayingInfoPropertyElapsedPlaybackTime: CMTimeGetSeconds(player.currentTime())
]
MPNowPlayingInfoCenter.default().nowPlayingInfo = songInfo
}
Run Code Online (Sandbox Code Playgroud)
我曾经设置过传递给方法MPNowPlayingInfoPropertyElapsedPlaybackTime的timePlayed变量,但由于它不起作用我player.currentTime()按照其他问题的建议尝试,这可能是比我正在使用的更好的衡量标准.
以下是寻求帮助的代码:
@IBAction func sliderChanged(_ sender: UISlider) …Run Code Online (Sandbox Code Playgroud) 我试图在Swift中的视图之间传递一个int变量,但我不知道如何访问其他View控制器的属性.
在目标CI中会做这样的事情
UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
AnsViewController *ansViewController = [storyBoard instantiateViewControllerWithIdentifier:@"ansView"];
ansViewController.num = theNum;
[self presentViewController:ansViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
在另一个viewcontroller.h文件中,我会写这个来声明属性来获取数据
@property (nonatomic) int num;
Run Code Online (Sandbox Code Playgroud)
现在对于斯威夫特我有这个
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let ansViewController : UIViewController = storyBoard.instantiateViewControllerWithIdentifier("ansView") as UIViewController
ansViewController.num = theNum;
self.presentViewController(ansViewController, animated:true, completion:nil)
Run Code Online (Sandbox Code Playgroud)
在另一个视图控制器的.swift文件中我通过执行来声明num
let num: int
Run Code Online (Sandbox Code Playgroud)
我很确定这不是正确的方法,因为我在这一行上收到错误
ansViewController.num = theNum;
Run Code Online (Sandbox Code Playgroud)
它说,"UIViewController没有名为num的成员"我如何解决这个错误,我做错了什么?
谢谢
我有一个简单的代码,它将遍历一个整数数组但是当我尝试使用"for in"循环时,它说我需要一个对象,所以我使用了一个NSNumber,但为了让我的代码工作,它必须是一个int所以在循环之后,我让它将NSNumber转换为int.它给了我另一个错误,说我需要声明变量_ strong以使它工作所以我这样做但现在它给了我这些错误:"不兼容的指向整数转换的指针'NSNumber* _strong' 发送到'int'类型的参数"并且"ARC不允许将'int'隐式转换为'NSNumber*'"以下是给出错误的代码:
for(__strong NSNumber *i in factors) {
i = [i intValue];
Run Code Online (Sandbox Code Playgroud) swift ×6
ios ×3
objective-c ×2
swift3 ×2
arrays ×1
factors ×1
for-loop ×1
int ×1
integer ×1
ios10 ×1
ios8 ×1
uikeyboard ×1
uistoryboard ×1
xcode8 ×1