[英]Having trouble with syntax in swift looping through an array
我試圖弄清楚如何遍歷此用戶名數組,但不確定語法。 我在xcode中使用swift
我目前有:
// Read text file
if let filepath = NSBundle.mainBundle().pathForResource("barbers", ofType: "txt")
{
do
{
//let contents = try NSString(contentsOfFile: filepath, usedEncoding: nil) as String;
//print(contents);
let text = try NSString(contentsOfFile: filepath, usedEncoding: nil) as String;
// Create character array & parse
let usernames = text.characters
.split { $0 == "\n" }
.map { String($0) }
.map { String($0.characters.split(" ")[0]) }
// Print Users
print(usernames);
// Test
}
catch
{
// Catch error?
}
}
else
{
// Print error to console log
print("Error: Could not find text file - something went wrong");
}
我的問題是:如何遍歷用戶名數組?
我只是不知道快速的語法
我正在尋找類似的東西
for(int i =0; i < usernames.size(); i ++ )
{
if(usernames[i] == USER)
{
b = true;
break;
}
b = false;
}
更新:
好的,所以我想出了如何遍歷,但是現在遇到了麻煩
我做了一個全局變量
var abc = "";
然后我做了
let abc = usernames;
現在,當我嘗試這樣做
// Test
for i in abc.characters
{
print("abc array contents: " + i);
if(i == theUser)
{
print("Barber");
barb = true;
break;
}
print("USER " + theUser);
barb = false;
print("\n");
}
我得到錯誤
二進制運算符“ +”不能應用於類型為“字符串”和“字符”的操作數
和
二進制運算符'=='不能應用於'Character'和'String'類型的操作數
for username in usernames
{
if(username == USER)
{
b = true;
break;
}
b = false;
}
或如果您需要訪問當前項目的索引:
for (index, username) in usernames.enumerate()
{
// same body as above
}
以上所有這些工作,但我最喜歡的Swifty for循環是
for index in 0..< usernames.count {
//your code here
//to get an object at a specific index you call usernames[index]
}
回答您的最新問題,我相信您需要將字符轉換為字符串。 就像是
let myCharacterAsAString = String(i)
print("abc array contents: " + myCharacterAsAString);
if(myCharacterAsAString == theUser)
{
print("Barber");
barb = true;
break;
}
print("USER " + theUser);
barb = false;
print("\n");
}
我相信Swift的最新版本已經取消了C樣式的for循環。 這可能不是超級有幫助,但是在Swift中進行迭代的方法可能是使用for-in循環
for username in usernames
{
if username == USER
{
b = true
break
}
b = false
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.