小编Gar*_*kin的帖子

startAccessingSecurityScopedResource永远不会返回成功

我正在开发一个沙盒式Mac App Store应用程序,它会询问用户从哪里保存从其他地方下载的文件.我有这个代码从用户获取文件夹(删除一些错误检查):

NSOpenPanel* openPanel = [NSOpenPanel openPanel];
[openPanel setAllowsMultipleSelection:NO];
[openPanel setCanChooseDirectories:YES];
[openPanel setResolvesAliases:YES];
NSInteger result = [openPanel runModal];
NSArray* urls = [openPanel URLs];
NSURL* folderURL = [urls objectAtIndex:0];
NSError* error;
NSData* bookmakeData = [folderURL bookmarkDataWithOptions:NSURLBookmarkCreationWithSecurityScope
                           includingResourceValuesForKeys:nil
                                            relativeToURL:nil
                                                    error:&error];
_saveFolderBookmark = bookmakeData;
Run Code Online (Sandbox Code Playgroud)

当把文件移到这个文件夹的时候,我有这个代码:

BOOL isStale;
NSError* error;
NSURL* saveFolder = [NSURL URLByResolvingBookmarkData:_saveFolderBookmark
                                              options:NSURLBookmarkCreationWithSecurityScope
                                        relativeToURL:nil
                                  bookmarkDataIsStale:&isStale
                                                error:&error];
BOOL success = [saveFolder startAccessingSecurityScopedResource];

// Move the file somewhere else
NSWorkspace* workspace = [NSWorkspace sharedWorkspace];
NSInteger operationTag;
BOOL copied = [workspace performFileOperation:NSWorkspaceMoveOperation
                                       source:[[self …
Run Code Online (Sandbox Code Playgroud)

macos cocoa objective-c appstore-sandbox

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

如何更改AVPlayer Live Streaming URL?

嗨开发人员和专家,我需要你的好建议和帮助.我正在使用一个具有四个不同无线电频道(按钮)的应用程序.我正在使用AVPlayer进行直播.我想在ViewDidLoad中创建一个AVPlayer对象,只需使用四个不同的按钮更改流式URL,而无需一次又一次地重新创建AVPlayer对象.我用Google搜索但没有找到任何解决方案.所以你的好建议和帮助将不胜感激.谢谢

- (IBAction)playBtn_clicked:(id)sender {

     NSURL *streamURL = [NSURL URLWithString:urlString];

    // I don't like this line, creating a new object again and again
    _streamPlayer = [[AVPlayer alloc] initWithURL:streamURL]; 

    if (_streamPlayer.rate == 1.0) {
        [_streamPlayer pause];
    } else {
        [_streamPlayer play];
    }
}
Run Code Online (Sandbox Code Playgroud)

objective-c audio-streaming live-streaming ios avplayer

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

键值设置SCNProgram OpenGL着色器的自定义值

根据Apple的文档"要更新一次值,使用键值编码:调用setValue:forKey:方法,提供着色器源代码中的统一名称作为键,并提供适当类型的数据作为值."(取自SCNProgram类参考).

但是,我不能让这个工作.

我有一个SCNMaterial子类,设置一个新的SCNProgram实例,加载顶点和片段着色器.我一直在handleBindingOfSymbol用来设置自定义变量,例如

self.stringMaterial.handleBindingOfSymbol("waveAmplitude") {
    programID, location, renderedNode, renderer in
    glUniform1f(GLint(location), Float(self.amplitude))
}
Run Code Online (Sandbox Code Playgroud)

这是正常的.

为了提高效率,我希望能够使用键值编码.但是,如果我用上面的代码替换

self.stringMaterial.setValue(Float(self.amplitude), forKey: "waveAmplitude")
Run Code Online (Sandbox Code Playgroud)

着色器中的统一值为0.0.

有人对这个有经验么?(我在MacOS上这样做,但我希望它在iOS上也一样.)

opengl key-value-coding vertex-shader scenekit

5
推荐指数
0
解决办法
354
查看次数

Xcode 构建设置和 Scheme 环境变量之间的区别

在 Build Stting>User Defined vs Edit Scheme>Arguments>Environment Variables 中设置环境变量有什么区别?我有一个调试暂存配置并在一个方案中使用它。想在 info.plist 和我的 Swift 代码中使用这些变量。(设置 URL 端点、api 密钥等)以在环境之间切换。

configuration xcode ios swift

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

数组中元素的索引

例如,我有以下课程:

class Person: Any {
    dynamic var name: String = ""
    dynamic var surname: String = ""
}
Run Code Online (Sandbox Code Playgroud)

另外,我有以下数组与"Person"类的实例:

let person1 = Person(); person1.name = "John"; person1.surname = "Smith"
let person2 = Person(); person2.name = "Ivan"; person2.surname = "Ivanov"
let person3 = Person(); person3.name = "Sam"; person3.surname = "Woodman"
let personList = [person1, person2, person3]
Run Code Online (Sandbox Code Playgroud)

有没有办法以某种方式得到所有约翰斯的指数?

swift

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