小编fis*_*her的帖子

Apple Mach-O链接器警告 - 框架搜索路径?

我偶然发现了一个恼人的错误:Apple Mach-O Linker警告.

ld:警告:找不到选项'-F/Users/erik/Documents/Xcode/Hello'的目录

ld:警告:找不到选项'-FFriend'的目录.

我的Project文件夹名为"Hello Friend".在我的框架搜索路径中,它有4行显示:

  • $(继承)
  • /用户/埃里克/文档/ Xcode中/你好
  • 朋友
  • $(PROJECT_DIR)

看起来它将"你好朋友"这个词分成了两个部分,因为这些单词之间的空格让我觉得这就是解释?

我试过编辑它

  • $(继承)
  • / Users/erik/Documents/Xcode/Hello Friend
  • $(PROJECT_DIR)

但它会跳回来.

有任何想法吗?

非常感谢!

xcode objective-c

12
推荐指数
2
解决办法
7089
查看次数

在autoreleasepool中使用realm的正确方法是什么?

这是文档关于使用GCD访问领域的说法:

"从调度队列访问Realm时,您应该使用显式自动释放池."

文档

我在我的应用程序中使用了这种做法,但我突然在控制台中看到以下消息:"RLMRealm实例在写入事务期间被释放".

它不会抛出错误,它只是默默地将它打印到控制台.没有任何内容写入数据库.

我在github上发现这个问题看起来非常相似.

我的问题是:我应该使用什么做法?在Realm文档中使用的那个或在github问题中找到的答案?

谢谢你的任何澄清.

autorelease realm ios swift

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

检查可选的isEqualToString

我有一个案例,我想检查一个可选的我是否等于一个字符串.首先,我必须打开它以检查它是否存在,然后我想检查它是否等于另一个字符串.然而,这给我一个问题,我必须两次编写相同的代码.我给你举个例子:

    var person : Person = Person()

    if let name = person.name {
        if name.isEqualToString("John") {
            println("Hello, John!")
        }
        else {
            println("Wait a minute, you're not John!")
    }
    else {
        println("Wait a minute, you're not John!")
    }
Run Code Online (Sandbox Code Playgroud)

如你所见,我必须写两次else语句.一旦,如果名称存在且不是'John',那么该名称不存在的另一个时间.

我的问题是,如何以正确的方式做到这一点.

谢谢你的帮助!

optional-variables swift

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

循环遍历多个UIAlertController

在某些情况下,我的应用程序需要显示多个警报消息.在开始时收集错误消息,并且需要一次一个地向用户显示.当第一个被确认时,应该呈现下一个.问题是,他们都试图同时执行,显然.有同步的智能方法吗?这里有一些代码简单描述了我想要做的事情:

var errors : [NSError]!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    let error1 = NSError(domain: "Test1", code: 1, userInfo: [NSLocalizedFailureReasonErrorKey : "Test1 reason."])

    let error2 = NSError(domain: "Test2", code: 2, userInfo: [NSLocalizedFailureReasonErrorKey : "Test2 reason."])

    let error3 = NSError(domain: "Test3", code: 2, userInfo: [NSLocalizedFailureReasonErrorKey : "Test3 reason."])

    errors = [error1, error2, error3]

}

override func viewDidAppear(animated: Bool) {
    super.viewDidAppear(animated)

    for error in errors {

        self.showAlert(error)

    }

}

func …
Run Code Online (Sandbox Code Playgroud)

synchronization swift uialertcontroller

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

检查对象是否超出数组范围的最佳方法

在Array中的特定索引处检查对象是否存在(在边界内)的最佳实践是什么?

让它像这样简单会很好,但不幸的是,这是不可能的:

let testArray = ["A", "B", "C", "D"]

if let result = testArray[6] {
    println("Result: \(result)")
}
else {
    println("Result does not exist. Out of bounds.")
}
Run Code Online (Sandbox Code Playgroud)

我是否需要检查总数?

谢谢!

arrays ios swift

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

如何从领域文件中删除类

我的默认Realm有几个类。我想完全删除所有引用,并删除其中一个类的所有数据。我怎样才能做到这一点?当我从应用程序中删除类时,在Realm Browser中打开文件时仍会列出该类。

realm ios swift

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

如果在初始化通知后更新结果,如何使用领域通知?

我使用带有Realm结果的UITableView作为它的数据源.结果使用领域通知进行注册,并在发生更改时更新.但是,同一个表视图有一个搜索栏,可根据用户搜索查询过滤结果.这也可以正常工作,但如果通知侦听器识别出更新,则节和行计数不匹配.这样做的正确方法是什么?是否可以更新NotificationToken?

这是初始化通知令牌的代码:

let realm = try! Realm()

results = realm.objects(Person.self).filter("active = '1'").sorted(byProperty: "name", ascending: true)

// Observe Results Notifications
notificationToken = results?.addNotificationBlock { [weak self] (changes: RealmCollectionChange) in

    guard let tableView = self?.tableView else { return }
    switch changes {
    case .initial:
        // Results are now populated and can be accessed without blocking the UI
        tableView.reloadData()
        break
    case .update(_, let deletions, let insertions, let modifications):

        // Query results have changed, so apply them to the UITableView
        tableView.beginUpdates()

        tableView.insertRows(at: insertions.map { …
Run Code Online (Sandbox Code Playgroud)

realm uitableview ios swift

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

NSDateformatter可用于阅读瑞典月份

我正在尝试解析日期列表.日期如下:"01MAY16,01JUN16,01AUG16"等等.到目前为止,所有日期都是英文版,我已成功使用NSDateFormatter,如下所示:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "ddMMMyy"
dateFormatter.locale = NSLocale(localeIdentifier: "en_US")

let date = dateFormatter.dateFromString("01MAY16")
Run Code Online (Sandbox Code Playgroud)

我现在偶然发现了一个问题.我解析的日期倾向于使用瑞典语语言环境显示:"01MAJ16,01JUN16,01OKT16".我希望通过将dateformatter中的语言环境设置为瑞典语来解析这个:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "ddMMMyy"
dateFormatter.locale = NSLocale(localeIdentifier: "sv_SE")

let date = dateFormatter.dateFromString("01MAJ16")
Run Code Online (Sandbox Code Playgroud)

当日期为"MAJ"时,这样可以正常工作,但仅限于该月是3个字母的月份.如果我尝试以下操作,则返回的日期为零:

let date = dateFormatter.dateFromString("01JUN16")
Run Code Online (Sandbox Code Playgroud)

它返回nil,因为它正在寻找的格式显然是'juni'.因此格式MMM并不意味着3个字母.

所以对我的问题.解决这个问题的最简单方法是什么?有没有我可以使用的技巧或我必须创建自己的格式化程序?

编辑

我从你那里学到了很多新东西,谢谢.手动设置shortMonthSymbols是一个很好的解决方案,但在我的情况下,我必须为挪威语,瑞典语和丹麦语语言环境做到这一点.我想出了一个覆盖NSDateFormatter的dateFromString()方法的解决方案.如果我做了一些非常愚蠢的事情,请告诉我.当我知道我解析的所有日期(任何语言环境)总是使用3个字母的月份时,使用此格式化程序:

class CustomDateFormatter : NSDateFormatter {

override func dateFromString(string: String) -> NSDate? {

    guard let date = super.dateFromString(string) else {

        //I only override the dateFormatter if no date is found and the dateFormat is set to exactly 3 M's (i.e …
Run Code Online (Sandbox Code Playgroud)

nsdateformatter date-formatting nslocale swift

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

self.navigationController?从objective-c viewController推送到Swift ViewController时是nil

我试图通过使用此代码从Objective C类推送到Swift类后显示navigationcontroller的ToolBar,但工具栏未显示:

self.navigationController?.setToolbarHidden(false, animated: false)
Run Code Online (Sandbox Code Playgroud)

然后我做了self.navigationController的打印?它返回零.

如果我从Obj-C转到Obj-C,则会找到navigationController.

有解决方案吗

objective-c navigationcontroller swift

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