小编Ray*_*Fix的帖子

Java教程说我可以有一个包 - 私有接口,但我不能

它说,在Java教程"定义接口"中

如果未指定接口public,则只能在与接口相同的包中定义的类上访问您的接口.

但是,这个

interface PPInterface {
    void foo();
    void bar();
}

class NewClass implements PPInterface {
    void foo() {}
    void bar() {}
}
Run Code Online (Sandbox Code Playgroud)

生成编译器错误NewClass因为我'试图分配较弱的访问权限; 是公开的.所以文档是错误的,或者我做错了什么,或者我误解了文档?

我想我不必使用界面 - 我喜欢它,因为它保持了良好的组织.

java interface access-specifier

31
推荐指数
2
解决办法
3万
查看次数

使用lldb在Xcode中单步调试时调试另一个选择器

我在我的代码中停在(lldb)提示符的断点处.我可以在控制台上发送消息对象并打印它们的值.

(lldb) p [self computePI]
(float) $1 = 3.0
Run Code Online (Sandbox Code Playgroud)

哇!这一点出了点问题.我希望能够进入computePI作为确定哪些变量搞砸的捷径.但是,如果我在该选择器上放置一个断点并再试一次,我得到:

(lldb) p [self computePI]
error: Execution was interrupted, reason: breakpoint 5.1.
The process has been returned to the state before execution.
Run Code Online (Sandbox Code Playgroud)

如果我能够以某种方式进入computePI,那将是一个真正的节省时间.这可能吗?我一直在看http://lldb.llvm.org并没有看到任何东西.谢谢你的帮助.

更新: 根据Jason Molenda的回答,我使用以下方便的别名更新了我的〜/ .lldbinit文件:

command alias nup expr -u 0 -- 
command alias nupo expr -u 0 -o --
Run Code Online (Sandbox Code Playgroud)

这让我用nup(代替p)和nupo(代替po).

debugging xcode objective-c lldb

4
推荐指数
1
解决办法
2615
查看次数

调用finishWritingWithCompletionHandler时,AVAssetWriter失败

我正在使用AVAssetWriter/AVAssetReader将PCM音频文件转码为AAC.我把它归结为一个在iOS6中工作但在iOS7中失败的简单项目.

一切顺利,直到我到[self.assetWriter finishWritingWithCompletionHandler:]然后,assetWriter进入失败状态,错误设置为-11800 AVFoundation未知错误,内部错误设置为-12733,显然对应于SampleBufferNotReady.

dispatch_queue_t queue = dispatch_queue_create("audio.encode", DISPATCH_QUEUE_SERIAL);

success = [self.assetWriter startWriting];
if (!success)
{
  [self showStatus:@"Export: writer failed to startWriting"];
  return;
}
[self.assetWriter startSessionAtSourceTime:kCMTimeZero];

[assetWriterInput requestMediaDataWhenReadyOnQueue:queue
                                        usingBlock:
 ^{
   while([assetWriterInput isReadyForMoreMediaData])
   {
     NSAssert (self.assetWriter.status == AVAssetWriterStatusWriting, nil);
     CMSampleBufferRef sampleBuffer = [assetReaderOutput copyNextSampleBuffer];

     if (sampleBuffer)
     {
       NSAssert (CMSampleBufferIsValid(sampleBuffer), nil);
       NSAssert (CMSampleBufferDataIsReady(sampleBuffer), nil);

       BOOL success = [assetWriterInput appendSampleBuffer:sampleBuffer];

       if (!success)
       {
         [self showError:self.assetWriter.error];
         self.assetWriter = nil;
         CFRelease(sampleBuffer);
         return;
       }

       CFRelease(sampleBuffer);
     }
     else
     {
       if ([assetReader status] == AVAssetReaderStatusCompleted)
       {
         [assetWriterInput markAsFinished]; …
Run Code Online (Sandbox Code Playgroud)

audio encoding avfoundation ios7

3
推荐指数
1
解决办法
3651
查看次数