小编Pau*_*w11的帖子

打破"if"语句并返回"for"循环的开头

因此,对于课堂作业,我必须接受用户输入并指定我的沙鼠对象每天可以使用的"食物"量.在这种情况下,我已经每天从用户那里获取最大量的食物,并且如果他们试图输入高于每日最大值的值,则需要向用户发出错误消息.

如果是这种情况,则需要重新提示他们输入沙鼠吃的食物量.

我似乎无法弄清楚如何打破"if"语句并回到"for"循环的顶部.这是我的代码:

for (int j = 0; j < numberOfFoods; j++) {
    System.out.println(gerbilId[index].substring(index)
            + " eats how many " + foodNames[j] + "s per day");
    int amountOfFood = keyboard.nextInt();

    if (amountOfFood > foodMax[j]) {
        System.out.println("Error. Please input a valid amount of food");
        break;
    } else {
        gerbilConsumption[index] = amountOfFood;
    }
}
Run Code Online (Sandbox Code Playgroud)

java for-loop if-statement break

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

在文本标签中显示数组

我还是Xcode的新手,所以请耐心等待我.无论如何,我在尝试在UILabel中显示数组的全部内容时遇到了一些麻烦.我只需使用代码即可显示它

wordList.text = [NSString stringWithFormat:@"List of Words:\n %@", listA];
Run Code Online (Sandbox Code Playgroud)

然而,在运行时,标签最终显示括号和单独的行上的单词,以及单词周围的引号,以及每个单词之间的行中的结束引号和逗号.例:

List of Words:
( 
"apple
",
"banana
",
"etc.
Run Code Online (Sandbox Code Playgroud)

虽然我确实希望单词以自己的行显示,但我不希望括号和右引号和逗号显示在单独的行中.我也希望一起删除括号,引号和逗号,但如果我不能,我不会介意太多.

任何人都可以解释为什么它被显示为这样,并帮助我在UILabel中自己正确显示数组中的每个单词?

arrays objective-c ios

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

Eddystone信标的背景信标检测和通知(iOS和Android)?

我们可以在应用程序背景中检测信标(iOS和Android).我看到Eddystone信标有iOS背景的问题.怎么解决这个?

altbeacon google-beacon-platform eddystone

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

在 tvOS 上的 SwiftUI 中更改按钮的颜色

我正在尝试更改ButtontvOS 上SwiftUI 的颜色。

修改background几乎可以工作,除了您可以看到底层UIButton实际上是在背景顶部使用圆形的半透明图像。这会导致矩形背景位于圆形图像之外的角落处的颜色不同。

在此处输入图片说明

添加.padding强调了这个问题:

在此处输入图片说明

struct ContentView: View {

    @State
    var selected = false

    var body: some View {

        Button(action: {
            self.selected.toggle()
        }) {
               Text($selected.wrappedValue ? "On":"Off")
                .foregroundColor(.white)
            }.padding(.all)
             .background(self.selected ? Color.green : Color.blue)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

一个相关的问题是更改“焦点”视图的颜色,因为我怀疑这是与按钮本身相同的视图,转换了大小和颜色。

tvOS 中带有 a 的典型技术UIButton是更改按钮图像,但似乎没有任何方法可以访问底层UIButton.

button swift tvos swiftui

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

NSPredicate导致App在UISearchBar中键入时崩溃

我相信我已将其缩小到此代码:

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{

    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"name contains[c] %@", searchText];
    NSArray *array = [NSArray arrayWithArray:users];
    NSLog(@"%@",array);
    searchResults = [array filteredArrayUsingPredicate:resultPredicate];
    NSLog(@"SR: %@",searchResults);
    searchResults = array;
}
Run Code Online (Sandbox Code Playgroud)

我从NSMutableArray开始users并将其"转换"为数组,创造性地命名array.从这里我尝试用Predicate过滤数组.在这一点上searchResults变得看似空洞NSLog.

这里发生了什么?为什么这会崩溃?如果我忽略Predicate函数并在数组中给searchResults两个对象,无论我输入什么,前两个单元格users都会出现.我尝试的其他所有内容都会让应用程序崩溃.

当应用程序崩溃时,我得到以下内容,非常有帮助(讽刺)控制台日志:

     *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFString 0x165025b0> valueForUndefinedKey:]: 
this class is not key value coding-compliant for the key name.'
    *** First throw call stack:
    (0x28fdbc1f 0x36786c8b 0x28fdb929 0x29cbe5ab 0x29c25677 0x29c618c9 0x29c6148b 0x29c60477 0x29c60299 0x355fd …
Run Code Online (Sandbox Code Playgroud)

arrays objective-c nspredicate ios

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

在单个NSOperationQueue iOS中管理多个操作,如暂停/恢复单个操作

在我的代码中,我想在队列中单独处理操作,并能够暂停和恢复队列中的操作操作.我该如何实现呢?

让我简单解释一下我的问题,我使用下面的代码来创建子类NSOperation的操作,并将此操作添加到NSOperationQueue.

@interface MyLengthyOperation: NSOperation
@end

@implementation MyLengthyOperation
- (void)main
{
    // a lengthy operation
    @autoreleasepool 
    {
        for (int i = 0 ; i < 10000 ; i++) 
        {

            // is this operation cancelled?
            if (self.isCancelled)
            break;

            NSLog(@"%f", sqrt(i));
        }
    }
}
@end
Run Code Online (Sandbox Code Playgroud)

我创建了上面的操作,我正在调用它

NSOperationQueue *myQueue = [[NSOperationQueue alloc] init];
myQueue.name = @"Download Queue";
myQueue.maxConcurrentOperationCount = 4;
[myQueue addOperation:operation];
Run Code Online (Sandbox Code Playgroud)

现在我想暂停并恢复我的操作.让我们假设循环在6786上,我按下暂停按钮,然后队列应暂停此操作,当我按下启动时,它应该从6786开始.

我想控制队列中的多个操作.我怎样才能做到这一点 ?

我看了[queue setSuspended:YES];- 这将阻止队列添加新操作,但我想控制队列中的现有操作.

等待你的答案.

提前致谢 !

multithreading nsoperationqueue ios

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

确认UITextField值的值是枚举的成员

我有一个UITextField随着UIPickerView从一个将其值设置enum和保存按钮,用户按下保存他们的选择.

我的问题是,有没有办法错误陷阱此设置,所以当用户按下保存时,它将确认该值UITextField是我的枚举成员?

我担心的是文本字段留空或粘贴了替代值.

error-handling enums ios swift

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

IOS随机卡片游戏 - 火环

所以我正在创建一款纸牌游戏Ring of Fire.我存储了这样的图像:

var picture:[UIImage] = [
        UIImage(named: "Card2")!,
        UIImage(named: "Card3")!,
        UIImage(named: "Card4")!,
        UIImage(named: "Card5")!,
        UIImage(named: "Card6")!,
        UIImage(named: "Card7")!,
        UIImage(named: "Card8")!,
        UIImage(named: "Card9")!,
        UIImage(named: "Card10")!,
        UIImage(named: "CardJack")!,
        UIImage(named: "CardQueen")!,
        UIImage(named: "CardKing")!,
        UIImage(named: "CardAce")!,
        ]
Run Code Online (Sandbox Code Playgroud)

每张卡片都有当前卡片下方显示的文字:

var name:String = ""

    var files = ["Velg en som må drikke", // 2
                 "Drikk selv", // 3
                 "Alle jenter må drikke", // 4
                 "Tommelen", // 5
                 "Alle gutter må drikke", // 6
                 "Pek på himmelen", // 7
                 "Drikkepartner", // 8
                 "Rim", // 9
                 "Kategori", …
Run Code Online (Sandbox Code Playgroud)

ios swift

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

为什么设置为后台的服务质量在主线程中运行?

为什么下面的代码在主线程中运行,虽然我已经为后台线程指定了qos?

func testQueue(){

    let queue = DispatchQueue(label: "com.appcoda.myqueue",qos:.background)
    queue.sync {

        if Thread.isMainThread{
            print("is in main thread")
        }else{
            print("is i background thread")
        }
        for i in 100..<110 {
            print("??", i)
        }
    }
}

testQueue()
Run Code Online (Sandbox Code Playgroud)

每当我尝试运行该方法时,我会在控制台中获取msg is in main thread,但不应该是这种情况.我正在阅读本文.

http://www.appcoda.com/grand-central-dispatch/

请参阅"调度队列入门"部分.

multithreading grand-central-dispatch ios swift

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

无法在MacOS应用中创建新目录

我正在开发Mac应用程序。我一直在努力在Mac OS的“ 桌面 ”中创建目录。我在High Sierra上工作。一切正常,但突然之间该应用无法在桌面中创建目录。我收到以下权限错误。我正在使用Xcode 9.3和Swift 4.1。

Error Domain=NSCocoaErrorDomain Code=513 "You don’t have permission to save the file “TestDir” in the folder “Desktop”." UserInfo={NSFilePath=/Users/sj/Library/Containers/com.user.TestSync/Data/Desktop/TestDir, NSUnderlyingError=0x60400044cc60 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

class DBManager: NSObject {
    static func getDirectoryPath() -> URL {
        let homeDirectory = URL(fileURLWithPath: NSHomeDirectory())
        let desktopPath = homeDirectory.appendingPathComponent("Desktop")
        let databaseFolder = desktopPath.appendingPathComponent("TestDir")

        return databaseFolder
    }

    static func createFolderIfNotExist() {
        let databaseFolder = DBManager.getDirectoryPath()

        if !FileManager().fileExists(atPath: databaseFolder.path) {
            do {
                try FileManager.default.createDirectory(atPath: databaseFolder.path, withIntermediateDirectories: true, attributes: nil)
            } …
Run Code Online (Sandbox Code Playgroud)

macos nsfilemanager

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