小编Jef*_*eff的帖子

Objective-C运算符的方括号优先级用作消息表达式/表示法?

使用方括号[]的Objective-C消息表达式(消息表示法)运算符是否与数组下标的C运算符具有相同的优先级,它也使用方括号[]?

我参考这个C运算符表.

此外,类似的问题适用于访问者方法调用的Objective-C"点语法"运算符与C运算符相比"按引用的元素选择".他们有相同的优先权吗?

我搜索了一个小时,找到了这个基本问题的直截了当,明确的答案.令人惊讶的是,我找不到一个.因此,这个问题.链接欢迎.

objective-c

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

如何杀死它们不是主线程的所有线程?

我在应用程序中使用块执行许多异步执行.

但是如果某个事件出现在我的应用程序中,我需要杀死它们不是主线程的所有线程.

那么可以停止执行所有块吗?或者换句话说,杀死所有不是主线程的线程?

PS:我试图在NSOperationQueue中执行块,但是我的第一个操作并没有在以下时间开始.

multithreading objective-c core-foundation objective-c-blocks

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

simctl delete,无法删除当前状态的设备:正在创建

我试图删除模拟器,但它处于simctl delete不会删除它的状态.我从我能想到的所有地方删除了它,但在某处保留了对它的引用.

一,上市:

    $ xcrun simctl list devices | grep 3B7
       Apple Watch - 38mm (3B7135C5-40A3-40FB-A130-12ACB448EE5D) (Creating) (unavailable, runtime profile not found)

接下来,我的删除尝试:

    $ xcrun simctl delete 3B7135C5-40A3-40FB-A130-12ACB448EE5D
    An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=159):
    Unable to delete device in current state: Creating

我接下来删除了设备目录,条目device_set.plist,甚至条目.default_created.plist.证明:

    $ pwd; ls -l 3*
    /Users/jeff/Library/Developer/CoreSimulator/Devices
    ls: 3*: No such file or directory
    $ grep 3B7 device_set.plist .default_created.plist ; echo Anything?
    Anything?

但这没有帮助.它还在那里.

因此,如果不删除整个CoreSimulator/Devices文件夹,如何删除此损坏的设备条目?

xcode ios-simulator simctl

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

NSDictionary init(contentsOfFile :)现已弃用,现在怎么办?

最近(如iOS的11),init(contentsOfFile:)NSDictionary被废弃.

在此输入图像描述

我想成为一个具有前瞻性思维的公民,所以我寻找另一种方法将属性列表(plist)加载到一个NSDictionary类型中.我能找到的唯一的东西PropertyListSerialization是比较笨重的.

这就是我想出的差异:

func dealWithFakeConf(atPath path:String) {
    // So easy!
    let myD:Dictionary<String,Any> = NSDictionary.init(contentsOfFile: path) as! Dictionary<String, Any>
    let l = myD["location"] as? String ?? "BAD_STRING"
    let q = myD["quantity"] as! Int
    print("location = \(l)")
    print("quantity = \(q.description)")

    // Old is new again?!
    guard let rawData = FileManager.default.contents(atPath: path) else {
        fatalError("Sumpin done gone wrong!")
    }
    var format = PropertyListSerialization.PropertyListFormat.xml
    let data = try? PropertyListSerialization.propertyList(from:rawData, options:[.mutableContainers], format:&format)
    guard let realData = data …
Run Code Online (Sandbox Code Playgroud)

nsdictionary plist ios ios11

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

在所有 Swift 项目中使用 Swift 静态库,构建和运行正常,编辑认为“没有这样的模块”

我已经在这里阅读了与 Swift 和静态库相关的大部分问题。这个问题不是重复的,因为:

\n\n
    \n
  • 我正在使用/已经构建了一个 Swift 静态库。该功能直到 2017 年 9 月 19 日发布的 Xcode 9 才存在。
  • \n
  • 我在一个全 Swift 项目中使用 Swift 静态库。许多问题和答案都是从处理“.h”头文件、模块映射和/或与 Objective-C 互操作的基础开始的。
  • \n
  • 我正在使用 Swift 4.2 和 Xcode 10,它们于 30 天前发布。语言和工具的变化速度使许多旧方法失效。
  • \n
  • 我实际上已经构建了工作。是编辑误报了错误。
  • \n
\n\n

我在静态库中有以下代码:

\n\n
public extension String {\n    public func clever() -> String {\n        return self + "_clever"\n    }\n}\n\npublic class TestMe {\n    let word:String\n    public init(word:String) {\n        self.word = word\n    }\n    public func log() {\n        print("TestMe.word = \\(word)")\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我执行了静态库的“产品”>“存档”,并查看日志以查找输出。

\n\n

我有一个单页应用程序,与模板唯一不同的代码是:

\n\n …

xcode ios swift

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

子内容视图控制器视图从故事板中有错误的边界大小?

我的示例故事板中的这个文档大纲显示了我正在使用的内容.

文件大纲

我有一个自定义的容器视图控制器和两个通过嵌入segues连接的内容视图控制器.

这是故事板本身.

故事板摘要

ZetaViewController必须创建一些编程视图(当然在ZetaView中).我注意到当我将这些以编程方式创建的视图居中时,它们似乎真的偏离了中心.

ZetViewController通过检查self.view.bounds.size.heightself.view.bounds.size.width以及做一些适当的算术来集中事物.

当我将调试日志记录以ZetaViewController,我注意到self.view.bounds.size.heightself.view.bounds.size.width不得不尺寸等于ContainerView(768 X 1004),并没有 ZetaView(728 X 637).IB中的Size Inspector确认了这些值.

我为ZetaView的tag属性创建了一个独特的值并记录下来.ZetaViewController.view 确实是ZetaView,因为标签值确认了它.

那么发生了什么?为什么在故事板和大小检查器中显示较小尺寸的ZetaView在运行时显示其属性中的错误值?

uiviewcontroller cgrect uistoryboard ios6

4
推荐指数
2
解决办法
6794
查看次数

崩溃,终止原因为0xdead10cc

请问这次事故的原因是什么?

Incident Identifier: A176CFB8-6BB7-4515-A4A2-82D2B962E097
CrashReporter Key:   f02957b828fe4090389c1282ca8e38393b4e133d
Hardware Model:      iPhone9,4
Process:             OneMessenger [10627]
Path:                /private/var/containers/Bundle/Application/03E067E9-E2C1-43F4-AC53-4E4F58131FF3/OneMessenger.app/OneMessenger
Identifier:          com.onem.adhoc
Version:             158 (1.0.4)
Code Type:           ARM-64 (Native)
Role:                Non UI
Parent Process:      launchd [1]
Coalition:           com.onem.adhoc [3747]


Date/Time:           2017-05-10 17:37:48.6201 -0700
Launch Time:         2017-05-10 17:37:46.7161 -0700
OS Version:          iPhone OS 10.3.1 (14E304)
Report Version:      104

Exception Type:  EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Termination Reason: Namespace SPRINGBOARD, Code 0xdead10cc
Triggered by Thread:  0

Thread 0 name:
Thread 0 Crashed:
0 …
Run Code Online (Sandbox Code Playgroud)

crash ios

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

更新Xcode 4.4 SVN中的单个文件

我可以在Xcode 4.3中的SVN项目中"更新"时选择单个文件.我可以查看哪些文件已更改并已提交.

但是在我将Xcode升级到4.4之后,当我从菜单栏中单击"文件>源代码管理>更新"或单击"管理器"中的"更新"时,没有更新的文件列表,只有很小的更新幻灯片.它没有我的选择更新整个更改的文件.

我知道我可以通过右键单击并选择"源代码管理>更新所选文件"来更新特定文件,但我想在Xcode 4.4之前的一个窗口中查看整个更改的文件.

我该怎么做?谢谢.

svn xcode

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

watchOS 如何找到主故事板文件?

出于功能标志的原因,我想要两个故事板文件。一次只会使用一个,但我想要两个文件用于在构建之间来回切换。但是,我找不到 watchOS 确定要加载哪个故事板文件的位置。

iOS 在 Info.plist 中有一个键UIMainStoryboardFile。但watchOS 没有这样的密钥

当我在“常规”“信息”中检查当前的 Watch Extension 和 Watch App 目标时部分中检查当前的 Watch Extension 和 Watch App 目标时,我发现没有提及故事板文件。

请注意,watchOS确实WKExtensionDelegateClassNameInfo.plist 的密钥,这也将满足我的功能标记目的。但是,我的代码中没有WKExtensionDelegate指定特定的故事板。

在 Xcode 中,当我在文件检查器右窗格中查看当前的手表故事板文件时,我没有看到初始故事板的特殊指示符标记。以防万一它被列在那里。

watchOS 的应用程序编程指南也没有解释如何建立连接。

有任何想法吗?

info.plist watchkit

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