我知道这是一个非常广泛的主题,但我一直在用演示和我自己的测试来挣扎,我不确定我是否正确地攻击了这个问题.所以,我应该开始的任何线索将不胜感激.
目标是让应用程序根据用户的设置生成一些合成声音.(这不是唯一的应用程序功能,我不是在这里重新创建Korg,但是synth是其中的一部分.)用户可以设置典型的合成器设置,如波形,混响等,然后在音符播放时选择,可能使用俯仰和速度修正器.
我用音频单元和RemoteIO玩了一下,但只是勉强理解我在做什么.在我走到那个兔子洞之前,我想知道我是否在正确的球场.我知道音频合成器将是低级别的,但我希望可能有一些我可以使用的更高级别的库.
如果您有任何关于从哪里开始的指示,以及我应该阅读的iOS技术,请告诉我.
谢谢!
编辑:让我更好地总结一下问题.
是否已经为iOS构建了任何合成库?(商业或开源 - 我没有找到任何搜索,但也许我错过了.)
是否有更高级别的API可以帮助生成缓冲区更容易?
假设我已经可以生成缓冲区了,是否有更好/更简单的方法将这些缓冲区提交到iOS音频设备而不是RemoteIO Audio Unit?
我正在以编程方式制作NSTableView,但由于某些原因,无论我做什么,我都无法让darn headerView显示出来.我必须以编程方式执行此操作而不使用IB,因为我实际上是在名为clozure cl的IDE中开发此小部件,这是一个包含可可桥的lisp ide.最初我认为这个问题可能是由我的开发环境引起的,但我只是在Xcode中使用目标C创建了一个例子,似乎问题仍然存在.我所做的非常简单:
我在IB中创建了一个窗口,在我的awkefromnib方法中,我创建并设置了一个表视图,这里是代码:
- (void)awakeFromNib {
mydatasource *data = [[mydatasource alloc] init];
NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"id"];
NSTableView *table = [[NSTableView alloc] initWithFrame: [[self
contentView]frame]];
[table setDataSource:data];
[table addTableColumn:column];
[table addTableColumn:column];
[[self contentView] addSubview:table];
}
Run Code Online (Sandbox Code Playgroud)
这是我的数据源对象的代码:
- (int)numberOfRowsInTableView:(NSTableView *)aTableView
{
printf("NUM ROwS");
return 4;
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex
{
printf("THE OTHER ONE");
return @"OKAY";
}
Run Code Online (Sandbox Code Playgroud)
使用这段代码,我得到一个包含两个列和四行的窗口,每个单元格显示字符串"OKAY",除了表没有标题外,这一切都很好.这可能是有意义的,除非我查看表头方法,它有一个初始化的头,其框架的值是有意义的.我只是想知道为什么我没有看到它.我需要做一些特殊的魔术才能显示标题吗?我似乎无法在文档中找到任何线索.再一次,必须以编程方式完成这个lisp ide,所以没有建议使用我知道将有一个工作headerView的IB没有帮助.非常感谢.
我正在用Swift的Codable替换旧的JSON解析代码,并且遇到了一些麻烦.我想这不是一个可编码的问题,因为它是一个DateFormatter问题.
从结构开始
struct JustADate: Codable {
var date: Date
}
Run Code Online (Sandbox Code Playgroud)
和一个json字符串
let json = """
{ "date": "2017-06-19T18:43:19Z" }
"""
Run Code Online (Sandbox Code Playgroud)
现在让我们解码
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601
let data = json.data(using: .utf8)!
let justADate = try! decoder.decode(JustADate.self, from: data) //all good
Run Code Online (Sandbox Code Playgroud)
但是,如果我们更改日期以使其具有小数秒,例如:
let json = """
{ "date": "2017-06-19T18:43:19.532Z" }
"""
Run Code Online (Sandbox Code Playgroud)
现在它打破了.日期有时会以小秒数回归,有时则不会.我以前解决它的方式是在我的映射代码中我有一个转换函数,它尝试使用和不使用小数秒的dateFormats.我不太确定如何使用Codable来处理它.有什么建议?
您好我在Swift中使用带有Alamofire的Object Mapper,我正在尝试将枚举原始值映射到真实的Enum.
这是我的枚举,也是我试图在函数映射中使用的代码.你能帮我解决一下EnumTransform的参数或如何修改代码吗?我知道我可以将值读作字符串并使用LevelType(rawValue:stringValue).
提前致谢.
enum LevelType : String {
case NEW = "NEW"
case UPDATE = "UPDATE"
}
func mapping(map: Map) {
typeEnum <- (map[“type”], EnumTransformable(???) )
}
Run Code Online (Sandbox Code Playgroud) 我错误地将我的项目更新到Swift 4.2,而没有等待pod更新.我已经慢慢更新了我的所有代码,但有一行我似乎无法弄清楚.
var animationRect = UIEdgeInsetsInsetRect(frame, UIEdgeInsets(top: padding, left: padding, bottom: padding, right: padding))
Run Code Online (Sandbox Code Playgroud)
我收到的错误是,
UIEdgeInsetsInsetRect'已被实例方法'CGRect.inset(by :)取代
任何有关这方面的帮助将不胜感激!
我希望我的函数计算我的Double类型数组的平均值.该数组称为"投票".现在,我有10个号码.
当我调用average function以获得阵列投票的平均值时,它不起作用.
这是我的代码:
var votes = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
func average(nums: Double...) -> Double {
var total = 0.0
for vote in votes {
total += vote
}
let votesTotal = Double(votes.count)
var average = total/votesTotal
return average
}
average[votes]
Run Code Online (Sandbox Code Playgroud)
我如何在此处调用平均值来获得平均值?
我正在尝试添加徽章警报标签,如附带的屏幕截图中的那个.

我试图搜索标题,标签uitabbar项目,但我卡住了.
任何建议表示赞赏.
我想在我的应用程序中构建URI(或URL方案)支持.
我LSSetDefaultHandlerForURLScheme()在我的工作中+ (void)initialize也设置了特定的URL方案info.plist.所以我没有Apple Script或没有URL方案Apple Events.
当我myScheme:在我最喜欢的浏览器中调用时,系统会激活我的应用程序.
问题是,如何在调用方案时处理这些方案.或者更好地说:如何定义应用程序应该执行的操作,何时myScheme:调用.
有一种特殊的方法我必须实现或者我必须在某处注册吗?
我正在更新swift 3中的代码.将Range转换为NSRange时出错.如何在swift 3中做到这一点?
func nsRange(_ range : Range<String.Index>) -> NSRange {
let utf16from = String.UTF16View.Index(range.lowerBound, within: utf16)
let utf16to = String.UTF16View.Index(range.upperBound, within: utf16)
return NSRange(location: utf16.startIndex.distanceTo(utf16from), length: utf16from.distanceTo(utf16to))
}
Run Code Online (Sandbox Code Playgroud) 我见过人们在objective-c中这样做,但是我很快就遇到了麻烦.我从图片中获得了一个像素的颜色,但现在我需要采用单独的红色,绿色和蓝色值.这是我所拥有的(h,w和rgb是整数,image.getPixelColor(CGPoint)返回一个UIColor):
xArry[h][w][rgb] = image.getPixelColor(CGPoint(x: w, y: h))
Run Code Online (Sandbox Code Playgroud)
如何将此UIColor更改为红色,绿色和蓝色值?谢谢!
swift ×7
ios ×3
cocoa ×2
macos ×2
alamofire ×1
appkit ×1
arrays ×1
audio ×1
codable ×1
function ×1
nstableview ×1
objective-c ×1
objectmapper ×1
rgb ×1
swift2 ×1
swift3 ×1
swift4 ×1
swift4.2 ×1
synthesizer ×1
uicolor ×1
uitabbaritem ×1
url-scheme ×1
xcode ×1