我有一个项目,其中包含大量代码,我认为是swift 2.3它包含和app扩展也用swift 2.3编写并使用2个Cocoapods:SwiftyJSON和MMWormhole.下载Xcode 8.3 beta后,迁移器运行了,我在一个主swift文件中包含了近100个编译器错误SwiftyJSON.
基本上我想知道是否有一种方法可以在Xcode8中使用这些细节.我很乐意将我自己的代码更新为swift3但是我不控制cocoapods(MMWormHole在Objective-C中,所以我假设Xcode将它转换为它需要的Swift版本,因为它不会发出编译器错误).我可以告诉Xcode全局使用swift 2.3吗?
我正在尝试对我正在使用 AVAudioEngine 图表播放的 mp3 文件的原始 PCM 样本进行一些计算。我每 44100 个样本就有一个闭包,提供AVAudioPCMBuffer. 它有一个channelDatatype属性UnsafePointer<UnsafeMutablePointer<Float>>?。我没有在 Swift 3 中使用过指针,所以我不清楚如何访问这些 Float 值。
我有以下代码,但有很多问题:
audioPlayerNode.installTap(onBus: 0,
bufferSize: 1024,
format: audioPlayerNode.outputFormat(forBus: 0)) { (pcmBuffer, time) in
let numChans = Int(pcmBuffer.format.channelCount)
let frameLength = pcmBuffer.frameLength
if let chans = pcmBuffer.floatChannelData?.pointee {
for a in 0..<numChans {
let samples = chans[a]// samples is type Float. should be pointer to Floats.
for b in 0..<flength {
print("sample: \(b)") // should be samples[b] but that gives error …Run Code Online (Sandbox Code Playgroud) 最初,我读到您无法在操场上尝试触摸或手势。然后我发现touchesMoved或轻击手势会做出反应。但是,我现在正在测试UIPinchGestureRecognizer。没有可以让您在操场上用Alt键模拟两个手指的功能。您是在告诉我我必须创建一个Xcode项目并为每次迭代运行并运行,仅因为它是紧要关头而不是水龙头?
我对String定义进行了扩展test。我也希望能够从中获取test功能NSString。在实际代码String.test中更为复杂。因此,而不是重新实现它为NSString我投str来String和呼叫test就可以了。我在这里的理解是,现在str是类型String,String.test将被调用,返回String Test。
但是,似乎str.test()结束了调用,NSString.test并且我结束了无休止的递归,直到堆栈溢出为止。
import Foundation
extension NSString {
func test() -> NSString {
let str = self as String
return str.test() as NSString
}
}
extension String {
func test() -> String {
return "String test"
}
}
let s: NSString = "test"
s.test()
Run Code Online (Sandbox Code Playgroud) 由于在推动我的私人项目和我的工作项目之间移动,我不断面临身份验证问题。每次我从工作环境转移到个人环境时,我都会花一些时间处理我的 ssh 密钥和配置。我经常浏览 github 文档,了解如何为站点生成和添加 ssh 公钥。
今天,我得到:
ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
我尝试生成一个新的 ssh 密钥对并将公钥提交给 github,但 github 说“密钥已在使用中”。我用谷歌搜索了一下,但无法完全理解该错误消息。
切换齿轮我注意到,在运行命令时ssh -T git@github.com,输出以与我的个人帐户用户名关联的 Github 用户而非我的工作用户名迎接我。
我对 ssh 的理解是它在某种意义上是“不负责任的”。没有用户名或密码是 ssh 连接过程的一部分。所以现在我相信身份验证问题围绕着一些系统认为我是作为我的私人 github 帐户的用户名登录的,我该怎么办?
我正在使用组件实现一些画布渲染.我有以下组件尝试将画布布局到页面,并在组件中的子Stage组件绘制到其上下文.
我需要一个对我的Renderer组件渲染的canvas元素的引用.所以我要求JSX中的ref,并在我得到它时将它设置在我的组件上.我也使用React上下文,以便所有子组件都可以访问此画布引用.我遇到的问题是它似乎getChildContext在分配画布引用之前被调用,因此所有子组件访问未定义的画布并且没有完成绘制.
export default class Renderer extends React.Component {
static childContextTypes = {
canvas: PropTypes.object
};
getChildContext() {
console.log("get child context")
return { canvas: this.canvas };
}
render() {
return (
<div className="CanvasHolder" key={0}>
<canvas className="MainCanvas" ref= {
canvas => {
this.canvas = canvas
console.log("got ref");
}
} />
<Stage />
</div>
)
}
}
Run Code Online (Sandbox Code Playgroud) 我在项目中创建了一个React组件,我想在多个项目中使用它.目前,我只关心在本地和发展中做这件事.React组件被渲染到根div中,项目使用webpack和babel将JSX,ES6和一些ES7功能转换成一个包.
我认为导出这个组件会很简单,这样我就可以npm install MyComponent在一个新项目中运行并开始使用它.但是,我发现它并不是那么直截了当.特别是,我已经阅读了几个小时和几个小时,似乎只是变得更加困惑.
如果我的最终目标是在其包含的项目中继续开发'MyComponent',而在任何其他本地项目中使用'MyComponent',我的选择是什么?我做的第一件事就是改变main我的钥匙package.json来/src/components/MyComponent和运行npm pack.这会产生一个tgz我可以通过其绝对文件路径安装在其他项目中的文件.但是,我发现es6和jsx没有被编译,因此我的客户端项目无法解析MyComponent.然后我使用webpack进入lib/MyComponent,但是当我import MyComponent from './path/to/MyComponent-1.0.0.tgz只{}在控制台中看到(一个空对象)时.
寻找我的问题的解决方案出现了许多不同的方法,将NPM,Grunt,Gulp,Babel,Webpack等组合在一起.而且我担心它会花费更多的时间(几天?)才能将其研磨成可以理解的东西.
鉴于我的要求,我可以实现的最简单的解决方案是:1)将我的React组件编译成最简单的导入模块2)将其导入任何本地项目3)继续在原始主机项目中开发包并轻松更改传播到客户项目.
我正在编写一个数据混搭功能,我正在修改一段动态比特破碎音频滤波器的音频数据.我很方便使用静态变量,因为它们的值在函数调用之间延续,这有助于我通过在渲染回调中递增等来实现一些有趣的基于时间的效果.
例如,一种效果使用sin函数来调整一些声音效果.像这样:
void mangle(float * data, int n) {
static bool direction = false;
static float bottom = 0;
static float top = n;
static float theta = 0;
theta += 5;
// data = sin(theta) etc..
Run Code Online (Sandbox Code Playgroud)
所以我希望theta初始化一次,然后再修改.同样,top想要成为静态变量,因为我稍后在函数中修改它.另外,由于基于程序状态的变化,top应该采取参数的值.但是当我去分配时,我得到了编译器错误nnntop
Initializer element is not a compile-time constsant.
有没有办法将参数分配给静态变量?有没有其他方法可以实现我想要的没有静态变量?我知道我可以使用实例变量,但我发现它太多了.
有没有一种方法可以将 ArrayBuffer 中的所有索引设置为 0,并且优化速度很快?我知道我可以进行迭代来手动执行此操作,但我想知道是否有一些内置函数可以快速执行此操作,因为我想每个动画帧执行一次。
我花了好几个小时试图在我的Swift Playground中访问图像数据.我已经按照许多教程建议在dir中添加资源文件夹作为兄弟目录.你的游乐场在.或者将图像拖到playground Navigator中的Resources文件夹中.没有任何效果.如何在操场上加载图像视图?
swift ×3
javascript ×2
reactjs ×2
xcode ×2
arraybuffer ×1
audio ×1
avfoundation ×1
c ×1
canvas ×1
cocoapods ×1
ecmascript-6 ×1
function ×1
git ×1
github ×1
npm ×1
nsstring ×1
ssh ×1
swift3 ×1
webpack ×1