小编Fre*_*Lee的帖子

NSOperationQueue 的 addOperation: 操作已完成无法入队?

注意:
这只是一个概念验证。
真正的后台任务是不断请求原始数据的“HTTP Get”并通过主线程显示;一经请求。

场景:
1)按需切换后台任务(循环)。
2) 后台任务在每次迭代时通知主线程 UI。
3) 只有一 (1) 个块操作在队列中运行。

Modus Operandus
1) 使用 NSBlockOperation 来包含后台代码。
2)使用区域BOOL来切换循环;通过 IBAction。

问题
1) 编译器将 BOOL 'isRunning' 标记为链接:

在此块中强烈捕获“自我”可能会导致保留循环。


2)在尝试添加块操作之前,我检查了队列中是否有任何操作。
但我总是收到以下错误:

-[NSOperationQueue addOperation:]: 操作完成,不能入队

除了上述问题之外,这种概念验证似乎正在发挥作用。

问题:
1) 为什么编译将 BOOL 'running' 标记为一个强行,而它只是一个缩放器?
2)如果在队列中没有找到,为什么我不能通过添加另一个 NSBlockOperation 来重用 NSOperationQueue?

以下是整个代码:

#define START 0
#define STOP 1

@interface ricViewController ()
@property (assign) BOOL running;
@end

@implementation ricViewController {
    NSOperationQueue *operationQueue;
    NSBlockOperation *blockOperation;
    void (^backgroundBlock)(void);
}

@synthesize running = isRunning;

#pragma mark - ViewController methods …
Run Code Online (Sandbox Code Playgroud)

objective-c nsoperationqueue ios nsblockoperation cloudkit

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

这个类不是密钥值编码兼容的密钥...为什么?

我将IB的输出链接到代码,如下所示.

class DiaryTableViewCell: UITableViewCell {
    @IBOutlet weak var TitleLabel: UILabel!
    @IBOutlet weak var SubTitleLabel: UILabel!
    @IBOutlet weak var leftImageView: UIImageView!
    @IBOutlet weak var rightImageView: UIImageView!
}
Run Code Online (Sandbox Code Playgroud)

在这里,我正在注册课程:

override func viewDidLoad() {
   self.title = "My Diary"
   cellNib = UINib(nibName: "TableViewCells", bundle: nil)
   tableView.registerClass(DiaryTableViewCell.classForCoder(), forCellReuseIdentifier: kCellIdentifier)
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

但我不断收到以下运行时错误:

***终止应用程序由于未捕获的异常"NSUnknownKeyException",理由是:"...的setValue:forUndefinedKey:]:此类不是密钥值的关键SubTitleLabel顺应编码-".

从以下代码中:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

var cell = tableView.dequeueReusableCellWithIdentifier(kCellIdentifier) as DiaryTableViewCell?

if (cell == nil) {
    tableView.registerClass(DiaryTableViewCell.classForCoder(), forCellReuseIdentifier: kCellIdentifier)
    cell = cellNib?.instantiateWithOwner(self, options: nil)[0] as? DiaryTableViewCell
                cell?.selectionStyle …
Run Code Online (Sandbox Code Playgroud)

key-value-observing uitableview ios swift

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

如何引用不同.swift文件中定义的数据类型?

我无法访问在单独的.swift文件中声明的数据类型.

场景:
我有两个.swift文件:
a)envSwift.swift和
b)mySwift.swift

' envSwift.swift '有我的各种数据类型,包括枚举(在任何类之外定义为它们自己):

在此输入图像描述

mySwift.swift:

在此输入图像描述

我收到编译器错误:" 使用未解析的标识符'FKPermission' ".

如何使用(引用)在其他.swift文件中定义的公共数据类型?


提示:当我将枚举FKPermission的复制/粘贴复制/粘贴到mySwift.swift和编译的顶部时,
我得到以下编译器错误:" 无效重新声明'FKPermission' "; 即使我无法访问它.
因此检测到原始枚举,但"未解决".

enums swift

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

如何在Xcode中运行首选目标?

我正在研究Apple的一个简单的应用程序演示,该演示有两(2)个目标.
每个目标都有自己的plist,故事板和一些代码; 他们之间共享了一些文件.

选择'R'un,运行一个默认目标.我想指定要运行的目标.

如何选择要在Xcode中运行的目标?

在此输入图像描述

xcode targets

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

.environmentObject() 视图运算符与 @EnvironmentObject 的目的是什么?

我正试图从这里众所周知的新手深渊中爬出来。

我开始掌握 @EnvironmentObject 的使用,直到我注意到文档中的 .environmentObject() 视图运算符。

这是我的代码:

import SwiftUI

struct SecondarySwiftUI: View {
    @EnvironmentObject var settings: Settings

    var body: some View {
        ZStack {
            Color.red
            Text("Chosen One: \(settings.pickerSelection.name)")
        }.environmentObject(settings) //...doesn't appear to be of use.
    }

    func doSomething() {}
}
Run Code Online (Sandbox Code Playgroud)

我尝试在视图上用 .environmentObject() 运算符替换 @EnvironmentObject 的使用。
我因缺少“设置”定义而出现编译错误。

但是,如果没有 .environmentObject 运算符,代码也可以正常运行。

所以我的问题是,为什么有 .environmentObject 运算符?

.environmentObject() 是否实例化环境对象,而 @environmentObject 是否访问实例化对象?

swiftui swiftui-environment

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

有没有办法获得AutoLayout XIB的'视觉格式语言'?

我正在撞墙砖.是否可以获取从AutoLayout XIB生成的可视格式语言

我希望在代码中模拟XIB等价物.

autolayout ios6

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

如何将结构加载到数组中?

我正在尝试使用结构数据加载一个简单的数组。
我读过不要使用元组,所以我使用结构。

以下是在操场上写的;但数组仍然为零。

我究竟做错了什么?

struct person {
    var firstName:String?
    var lastName:String?
    init(firstName:String, lastName:String) {
        self.firstName = firstName
        self.lastName = lastName
    }
}

let john = person(firstName: "John", lastName: "Doe")
let rich = person(firstName: "Richard", lastName: "Brauer")
let ric = person(firstName: "Ric", lastName: "Lee")
let Merrideth = person(firstName: "Merrideth", lastName: "Lind")

var myPeople:[person]?

myPeople?.append(john)
myPeople?.append(rich)
myPeople?.append(ric)
myPeople?.append(Merrideth)

println(myPeople)
Run Code Online (Sandbox Code Playgroud)

arrays struct swift

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

用外行的话来说,拉链做什么?

我在学习的一些代码中偶然发现了'zip'.

所以我查了一下以获得以下内容:

zip(_:_:) https://developer.apple.com/documentation/swift/1541125-zip

zip截图

这和牛奶一样清楚.

拉链做什么以及何时使用它?

zip swift

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

"有些"是什么意思?

Swift调试器打印输出中的'Some'是什么意思?
......这是默认的"类"值吗?如果是这样......它将如何改变?

注意: 'Some'似乎指向默认类.

(lldb) po rootNode
Some
 {
  nodeValue = 10
  leftNode = Some {
    nodeValue = 1
    leftNode = nil
    rightNode = Some {
      nodeValue = 2
      leftNode = nil
      rightNode = Some {
        nodeValue = 3
        leftNode = nil
        rightNode = Some {
          nodeValue = 4
          leftNode = nil
          rightNode = Some {
            nodeValue = 5
            leftNode = nil
            rightNode = nil
          }
        }
      }
    }
  }
  rightNode = nil
}
Run Code Online (Sandbox Code Playgroud)

class swift

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

Swift的字典键列表与Objective-C不同

Swift中的列表字典键行为与Objective-C不同.
Objective-C的:

NSDictionary *myDict = @{@"key1": @"One",@"key2": @"Two",@"key3": @"Three"};

for (NSString *myKey in myDict) {
    NSLog(@"key: %@",myKey);
}
Run Code Online (Sandbox Code Playgroud)

Objective-C调试输出:

key: key1 
key: key3
key: key2 
Run Code Online (Sandbox Code Playgroud)

但Swift表现不同:

let stringOfStrings = ["key1":"value1", "key2":"value2"]

for key in stringOfStrings {
    println(key)
}
Run Code Online (Sandbox Code Playgroud)

斯威夫特的输出:

(key2, value2)
(key1, value1)
Run Code Online (Sandbox Code Playgroud)

如何使Swift像Objective-C一样执行; 即,仅列出键?

nsdictionary swift

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

递减For()循环

递减for()循环的语法是什么?

我想做以下类似的事情而不会出现编译错误:

for ndx in 5...4 {
    print("do something")
}
Run Code Online (Sandbox Code Playgroud)

for-loop swift3

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