小编Mar*_*rty的帖子

从块内部调用[self methodName]?

我刚刚碰到了块,我认为它们正是我正在寻找的东西,除了一件事:是否可以从块中调用方法[self methodName]?

这就是我想要做的:

-(void)someFunction{
    Fader* fader = [[Fader alloc]init];

    void (^tempFunction)(void) = ^ {
        [self changeWindow:game]; 
        //changeWindow function is located in superclass
    };

    [fader setFunction:tempFunction];
}
Run Code Online (Sandbox Code Playgroud)

我已经搜索了几天,我找不到任何证据证明这是可能的.

这是完全可能的,还是我试图使用块来做他们不想要的东西?

我使用块的原因是我创建了一个Fader类,我希望存储一个块,以便在它完成淡出时执行.

谢谢

编辑:好的,我在建议中添加了,但我仍然收到EXC_BAD_ACCESS错误...

-(void)someFunction{
    Fader* fader = [[Fader alloc]init];

    __block MyScreen* me = self;

    void (^tempFunction)(void) = ^ {
        [me changeWindow:game]; 
        //changeWindow function is located in superclass
    };

    [fader setFunction:tempFunction];
    [fader release];
}
Run Code Online (Sandbox Code Playgroud)

也许我不允许给推子这个功能......?

objective-c self objective-c-blocks

72
推荐指数
2
解决办法
4万
查看次数

如何使用此错误打印回溯而不惊慌?

我正在运行 Rust warp 网络服务器,我需要更多描述性的错误消息。我想打印一个回溯或类似的东西,这样我就可以知道错误是从哪里开始的。

我正在使用Failure板条箱,但它现在已被弃用,所以我迁移到thiserror.

是否有可能(不每晚使用)打印回溯而不惊慌?

error-handling rust

5
推荐指数
1
解决办法
375
查看次数

如何在 rust 中使用 nom 解析对称带引号的字符串?

我应该如何使用nom解析类似于 rust 原始字符串的带引号的字符串?我想解析以下内容:

"A standard string"
#"A string containing ["] a quote"#
##"A string containing ["#] a quote and hash "##
Run Code Online (Sandbox Code Playgroud)

我将如何做到这一点,在开始和结束时需要相同数量的“#”符号,同时允许 #'ed 字符串包含未转义的引号和哈希?

rust nom

5
推荐指数
1
解决办法
256
查看次数

使用LLDB时Xcode 4.3崩溃

自从安装xcode 4.3(来自应用程序商店)以来,当我尝试运行我的一些应用程序并将调试器设置为LLDB时,Xcode崩溃.GDB工作正常.

我已经尝试重新安装iTunes并删除所有xcode的痕迹并重新安装.我也尝试删除.xib文件并将它们重新添加到项目中.

任何帮助都会很棒:)

以下是生成的一些报告:

进程:Xcode [2102]路径:
/Applications/Xcode.app/Contents/MacOS/Xcode标识符:
com.apple.dt.Xcode版本:4.3.2(1177)代码类型:
X86-64(Native)

日期/时间:2012-05-05 11:02:34.865 +1000操作系统版本:Mac OS X 10.7.3(11D50b)报告版本:9

自上次报告后的间隔时间:2063秒自上次报告以来崩溃:自上次报告以来每个应用程序间隔时间:882秒自上次报告以来每个应用程序崩溃:7

崩溃的线程:0调度队列:com.apple.main-thread

异常类型:EXC_CRASH(SIGABRT)异常代码:0x0000000000000000,0x0000000000000000

特定于应用程序的信息:ProductBuildVersion:4E2002 UNCAUGHT EXCEPTION(NSInternalInconsistencyException):在为扩展名'Xcode.DebuggerFoundation.Debugger.LLDB'触发错误时无法加载插件'com.apple.dt.dbg.DebuggerLLDB':UserInfo:{NSUnderlyingError = "Error Domain = DVTPlugInErrorDomain Code = 2 \"加载插件失败.\"UserInfo = 0x402a89c20 {DVTPlugInIdentifierErrorKey = com.apple.dt.dbg.DebuggerLLDB,DVTPlugInExecutablePathErrorKey =/Applications/Xcode.app/Contents/PlugIns/DebuggerLLDB. ideplugin/Contents/MacOS/DebuggerLLDB,NSLocalizedRecoverySuggestion =插件或其必备插件之一可能丢失或损坏,可能需要重新安装.,NSLocalizedDescription =加载插件失败.,NSFilePath =/Applications/Xcode.app/Contents/PlugIns/DebuggerLLDB.ideplugin,NSLocalizedFailureReason =插件\ U201ccom.apple.dt.dbg.DebuggerLLDB\U201d在路径\ U201c/Applications/Xcode.app/Contents/PlugIns/DebuggerLLDB.ideplugin\U201d无法加载 .插件或其中一个必备插件可能丢失或损坏.,NSUnderlyingError = 0x4003c62e0 \"无法加载bundle\U201cDebuggerLLDB\U201d,因为它已损坏或缺少必要的资源.\"}";}提示:无回溯:0 0x00007fff945fcfaa __exceptionPreprocess(在的CoreFoundation)1个0x00007fff8c9add5e objc_exception_throw(在libobjc.A.dylib)2 0x000000010f1b207f - [DVTExtension _fireExtensionFault](在DVTFoundation)3 0x000000010f22c666 __DVTDispatchSync_block_invoke_0(在DVTFoundation)4 0x00007fff90a53aad _dispatch_barrier_sync_f_invoke(在libdispatch.dylib) 5 0x000000010f22c483 DVTDispatchSync(在DVTFoundation)6 0x000000010f22c297 DVTSyncPerformBlock(在DVTFoundation)7 0x000000010f18e69b - [DVTDispatchLock performLockedBlock:](在DVTFoundation)8 0x000000010f1b1e32 - [DVTExtension _valueForKey:inParameterData:usingSchema:](在DVTFoundation)9 0x000000010f1b1d6f - [DVTExtension valueForKey:] (在DVTFoundation中)10 0x0000000116707322 - [DBGLLDBDebu …

crash xcode lldb

4
推荐指数
2
解决办法
2428
查看次数