我最近将Xcode更新到版本7.1,其中包括Swift 2.1.我安装了Swift 2.1而没有任何麻烦.在尝试运行我的项目后,我意识到我需要获取最新版本的Realm,因为之前的版本不支持Swift 2.1.我删除了旧框架并导入了Realm 0.96.2.每当我跑,我现在得到这个错误:
bash: /Users/userName/Library/Developer/Xcode/DerivedData/appName-ghiroqitgsbvfhdqxsscyokyoouz/Build/Products/Debug-iphoneos/appName.app/Frameworks/Realm.framework/strip-frameworks.sh: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我怀疑问题在于如果您希望将应用程序提交到App Store所需的脚本,因此我删除了运行脚本阶段,添加了新脚本,并从Realm文档站点复制了脚本:
bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Realm.framework/strip-frameworks.sh"
Run Code Online (Sandbox Code Playgroud)
我认为那会解决它,但事实并非如此.然后我认为问题可能出在Realm.framework或RealmSwift.framework文件中,所以我删除了它们并重新导入它们(以防万一我搞砸了).没有改变.有谁知道这个错误是否有解决方法?
谢谢!-CodeIt
最近,我一直在研究一个应用程序.该应用程序的目标是向您展示在通知中心的今日视图中拍摄的最近10张照片,以及其他内容.该应用程序在iOS模拟器中完美运行,但只要我将它放在真实设备上进行测试,它就会失败.它返回错误:
fatal error: Unexpected nil while unwrapping an Optional value
Run Code Online (Sandbox Code Playgroud)
通常,这很容易修复,因为XCode突出显示返回nil的代码,并为您提供修复它的机会.在这种情况下,我的代码都没有突出显示.相反,它突出显示来自线程1的一行(这是正确的术语吗?线程1?),如下所示:
另请注意,高位线上方是线
; function signature specialization <Arg[0] = Exploded, Arg[1] = Exploded of Swift.(_fatalErrorMessage (Swift.StaticString, Swift.StaticString, Swift.StaticString, Swift.UInt) -> ()).(closure #2)
Run Code Online (Sandbox Code Playgroud)
由于它的"fatalErrorMessage"部分,我在图片中包含了这一行.我怀疑这可以让我知道错误,但我不知道这意味着什么.我还没有达到理解的程度.
此外,经过一番思考后,我在viewDidLoad()函数中放置了一个断点,希望跟踪任何nil值,但代码似乎永远不会达到这一点.好像我的代码都没有被运行.
有没有人有这样的问题/了解错误代码(如果它是什么)意味着什么?我现在非常绝望,因此我在这里.
谢谢,CodeIt
编辑: 我在viewDidLoad函数中放置了一个println行来仔细检查它是否正在运行.println函数运行和输出正确,所以我想我可能只是搞砸了我的断点.无论如何 - 代码运行,但它仍然没有突出显示导致nil值的任何代码.
编辑2: 根据要求,我插入了部分代码.请记住,这段代码是"初稿",如果你愿意的话,我还没有去清理它.我只是想让它发挥作用:
@IBOutlet weak var currentPosLabel: UILabel!
var currentImgPos = 0
@IBOutlet weak var imageView: UIImageView!
var images: NSMutableArray!
var totalImageCountNeeded: Int!
func fetchPhotos() {
images = NSMutableArray()
totalImageCountNeeded = 10
self.fetchPhotoAtIndexFromEnd(0)
}
func fetchPhotoAtIndexFromEnd(index: Int) {
let imgManager = PHImageManager.defaultManager() …Run Code Online (Sandbox Code Playgroud) 注意:我对Realm和Swift相当新,所以请原谅任何我不明白的明显事情.
我有一个工作的UITableView,我计划填充任务.我希望用户能够根据需要添加和删除任务,因此我无法对任务进行硬编码,并且我希望在应用程序启动之间保存任务.最明显的方法是创建一个在Realm中保存的数组.问题是,我不明白如何在Realm中保存数组.我已经阅读了Realm网站上的文档,但由于我自己仍然是Swift的新手(并且它在ObjC中),因此发现它相当混乱.你会如何创建一个数组并保存它?我最初尝试过这个,当它不起作用我做了一些研究,发现RLMArray实际上不是一个数组:
let ToDoTasksArray: RLMArray = ["Task Goes Here", "Task Goes Here2"]
Run Code Online (Sandbox Code Playgroud)
对此有何帮助?谢谢!
编辑:
我也尝试将数组保存为RLMObject作为对象,如下所示:
realm.addObject(ToDoTasksArray)
Run Code Online (Sandbox Code Playgroud)
但这也行不通,这并不让我感到惊讶.数组不是对象.