我一直在尝试下载用于离线阅读的SDK文档,以便我可以在没有Internet连接的情况下引用信息,但是Xcode似乎并不关心我是否已经下载了文档,并且只有在我有Internet连接时才会显示信息.我的意思是我可以看到文档查看器左侧窗格中的树,但点击任何内容都不会加载页面,除非有Internet连接.如果我重新打开Wi-Fi,它会立即再次运行.
这是在Xcode 5,6和6 beta 4上发生的,尽管从"首选项"窗格下载iOS 8(6+以上)文档或任何文档.
手动删除文档集,重新启动然后重新下载它们并没有解决问题.
删除.plist文件也无法解决问题.com.apple.dt.Xcode.plist com.apple.dt.Xcode.LSSharedFileList.plist
这种情况发生在我安装的所有3个版本的Xcode中,所以我不确定它是否比仅仅1个版本更深.
是否有另一个文件说明是否已经下载我可以清除并重新生成?或者docsets上是否存在潜在的权限问题?在Xcode中,是否有加载应用程序的命令行版本,以便我可以看到任何错误消息?
我已经下载了Dash(http://kapeli.com/dash),它立即获取了我下载的文档集,并使它们可以脱机使用.虽然我现在可以愉快地使用它,但与Xcode集成会很高兴.
现在已经挣扎了两个星期而没有找到足够的教程,SO通过我自己的许多失败的调查回答任何问题,我觉得最好在这里问一下,看看是否可以提供一个好的答案,或许可以节省我自己和很多其他人时间和头痛!
许多指南建议使用NSFetchedResultsController从Core Data存储中检索数据,特别是如果要在UITableView中显示数据.然而,几乎所有教程都假设您希望一次显示所有数据并停在那里.一旦我试图限制单元格数量并实现"加载更多"功能,它就会在接缝处开始崩溃.
在以下代码中(在Swift中实现),使用AFNetworking从API检索数据并将其保存到Core Data.保存数据发生在AF呼叫的成功块中.
所有这些都有效,但我无法找到一种成功的方法来限制显示的项目/单元格的数量,并在用户向下滚动时增加它.
import UIKit
import CoreData
class SearchResultsViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, CLLocationManagerDelegate, NSFetchedResultsControllerDelegate{
@IBOutlet var tableView: UITableView!
// TableView Properties
private let cellIdentifier = "SearchResultCellIdentifier"
var refreshController = UIRefreshControl()
// persistant data stores and controllers
private var managedObjectContext : NSManagedObjectContext?
private var displayCount = 5
// Setup the fetch results controller
var fetchedResultsController: NSFetchedResultsController
{
if _fetchedResultsController != nil
{
return _fetchedResultsController!
}
let fetchRequest = NSFetchRequest()
// Edit the entity name as appropriate. …Run Code Online (Sandbox Code Playgroud) 看了几个关于SO的不同建议,我无法确定为什么下面的函数不起作用.它似乎在几个月内返回6,在其他月份返回5.当几周改变几天时,它完美地运作.
例如,尝试
weeksInMonth(8, forYear 2015)
Run Code Online (Sandbox Code Playgroud)
结果6.
我相信我对日历上的"第一周日"财产有误解,但没有得到Apple或网上的充分解释.
试过了两个.WeekOfMonth和.WeekOfYear.再也无法找到确切差异的解释.
任何建议都会受到欢迎.
func weeksInMonth(month: Int, forYear year: Int) -> Int?
{
if (month < 1 || month > 12) { return nil }
let dateString = String(format: "%4d/%d/01", year, month)
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy/MM/dd"
if let date = dateFormatter.dateFromString(dateString),
let calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
{
calendar.firstWeekday = 2 // Monday
let weekRange = calendar.rangeOfUnit(.WeekOfMonth, inUnit: .Month, forDate: date)
let weeksCount = weekRange.length
return weeksCount
}
else …Run Code Online (Sandbox Code Playgroud) 在Xcode 6.3 Beta中升级到Swift 1.2后,我现在执行fetchRequest的所有代码都会导致EXC_BAD_ACCESS
这是一个示例,我根据实体名称删除实体:
func deleteAllEntities(entityName: String)
{
println(entityName)
var error: NSError? = nil
let allEntityFetchRequest = NSFetchRequest(entityName: entityName)
if let savedObjects = self.managedObjectContext?.executeFetchRequest(allEntityFetchRequest, error: &error) as? [NSManagedObject]
{
for object in savedObjects
{
self.managedObjectContext?.deleteObject(object as NSManagedObject)
}
// save changes persistent store
if !(self.managedObjectContext!.save(&error))
{
println("ERROR: Error saving model: \(error?.localizedDescription)")
}
}
else
{
println("ERROR: Fetch error: \(error!.localizedDescription)")
}
}
Run Code Online (Sandbox Code Playgroud)
另一个例子是:
var error: NSError? = nil
if let venueObjects = self.managedObjectContext?.executeFetchRequest(relatedVenuesEntityFetchRequest, error: &error) as? …Run Code Online (Sandbox Code Playgroud) 我正在尝试AudioKit将麦克风通过管道传输到Google的语音文本API,如此处所示,但我不确定如何解决。
要为语音转文本引擎准备音频,您需要设置编码并将其作为块传递。在Google使用的示例中,他们使用了Apple的示例AVFoundation,但是我想使用AudioKit,这样我就可以进行一些预处理,例如削减低振幅等。
我相信执行此操作的正确方法是使用Tap:
首先,我应该通过以下方式匹配格式:
var asbd = AudioStreamBasicDescription()
asbd.mSampleRate = 16000.0
asbd.mFormatID = kAudioFormatLinearPCM
asbd.mFormatFlags = kAudioFormatFlagIsSignedInteger | kAudioFormatFlagIsPacked
asbd.mBytesPerPacket = 2
asbd.mFramesPerPacket = 1
asbd.mBytesPerFrame = 2
asbd.mChannelsPerFrame = 1
asbd.mBitsPerChannel = 16
AudioKit.format = AVAudioFormat(streamDescription: &asbd)!
Run Code Online (Sandbox Code Playgroud)
然后创建一个水龙头,例如:
open class TestTap {
internal let bufferSize: UInt32 = 1_024
@objc public init(_ input: AKNode?) {
input?.avAudioNode.installTap(onBus: 0, bufferSize: bufferSize, format: AudioKit.format) { buffer, _ in
// do work here
}
}
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个协议类型的"过滤"数组
我有一系列符合几种不同协议的结构(评估,级别和门) - 可分级,可重复和可测试:
protocol Stageable
{
var index : Int { get }
var steps : [Step] { get }
}
protocol Testable
{
var threshold : Float { get }
}
protocol Repeatable
{
var sessions: Int { get }
}
struct Gate : Stageable, Testable, Repeatable
{
private(set) var index : Int
private(set) var steps : [Step]
private(set) var threshold : Float
private(set) var sessions : Int
}
struct Assessment : Stageable, Testable
{
private(set) var index …Run Code Online (Sandbox Code Playgroud)