小编Jes*_*ers的帖子

如何在Swift中有条件地编译tvOS

如何在Swift语言的同一文件中有条件地编译iOS和tvOS的代码?我已经尝试了Apple文档中提到的所有Objective-C样式#ifTARGET_OS_TV,以及其他一些答案.但我还没有为Swift代码找到一个可行的解决方案.

ios swift tvos

11
推荐指数
3
解决办法
2855
查看次数

猕猴桃规格单位测试:实例方法'-attachToVerifier:验证程序:'未找到

我正在建立一些新西兰测试并得到一个我无法解释的警告.我是新来的新西兰人.

我有一个模拟对象设置:

id conversationMock = [KWMock mockForProtocol:@protocol(Conversation)];
[conversationMock stub:@selector(end)];
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,一个名为"对话"的属性:

@interface MyController ()
@property (nonatomic, assign) id<Conversation> conversation;
@end
Run Code Online (Sandbox Code Playgroud)

模拟被分配给属性,然后在规范中我检查对话是否调用方法"end":

it(@"should end conversation", ^{
  [[[myController.conversation] should] receive] end];
  [myController stopTalking];
});
Run Code Online (Sandbox Code Playgroud)

编译器(LLVM 3.0)显示警告:"实例方法"-attachToVerifier:验证程序:'not found'

这是什么原因?这是我需要解决的问题吗?(测试运行正常,检查方法调用结束工作正常)

tdd bdd cocoa-touch unit-testing objective-c

8
推荐指数
2
解决办法
1657
查看次数

让Xcode 4.3警告当前@implementation中存在的未声明的方法

当Xcode 4.3存在于当前时 @implementation,Xcode 4.3不会对未声明的方法发出警告,这是一个很棒的新功能.但是,在Xcode 4.2上使用我的项目时,这在某些情况下会导致问题.

如何重新启用未声明方法的警告?

例如:

@interface MashTun : NSObject
- (void)foo;
@end

@implementation MashTun
- (void)foo {
    CGRect rect = [self smallRect];
    NSLog(@"My Small Rect: %@", NSStringFromCGRect(rect));
}

- (CGRect)smallRect {
    return CGRectMake(0, 0, 100, 100);
}
@end
Run Code Online (Sandbox Code Playgroud)

在Xcode 4.2中,这失败了:

warning: instance method '-smallRect' not found (return type defaults to 'id')
error: initializing 'CGRect' (aka 'struct CGRect') with an expression of incompatible type 'id' 
Run Code Online (Sandbox Code Playgroud)

我完全理解Xcode 4.2中的警告和错误,因为它不允许在当前@implementation范围内搜索方法.(修复很简单:将smallRect方法放在方法上方foo,或者smallRect在类别或标题中声明方法.)

但是如何在Xcode 4.3中打开警告以捕获此错误,然后再将其传递给运行4.2的同事?

xcode objective-c clang compiler-warnings method-declaration

8
推荐指数
1
解决办法
1442
查看次数

initWithNibName和initWithCoder之间的区别

任何人都可以解释我何时使用initWithNibName以及何时使用initWithCoder?

iphone

7
推荐指数
2
解决办法
3884
查看次数

为什么Xcode 5.1.1的项目格式从Plist到XML?

您可以看到此图像中显示的项目格式如何从Plist格式转换为Git中这些分支之间的XML,这使得文件格式加倍,这在合并分支时经常会发生冲突.似乎有些东西正在从Plist改为XML格式.这个项目确实使用CocoaPods,所以这可能是一个因素.我使用的是CocoaPods 0.33.1.

我测试了运行CocoaPods,这是在Xcode旁边修改应用程序的唯一方法,虽然我没有看到它在运行时改变项目pod install.

关于如何将项目文件从Plist格式更改为XML的任何想法?

在此输入图像描述

git xcode cocoapods xcode5.1

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

SIGABRT在__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__上崩溃

我有一个我不熟悉的SIGABRT崩溃日志.看起来它正在抛出异常,但我无法看到列出异常的位置或其根本原因.

这是在客户的iPad 2/iOS 4.3上运行.

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib          0x33ed3a1c __pthread_kill + 8
1   libsystem_c.dylib               0x354d83b4 pthread_kill + 52
2   libsystem_c.dylib               0x354d0bf8 abort + 72
3   libstdc++.6.dylib               0x33671a64 __gnu_cxx::__verbose_terminate_handler() + 376
4   libobjc.A.dylib                 0x3636906c _objc_terminate + 104
5   libstdc++.6.dylib               0x3366fe36 __cxxabiv1::__terminate(void (*)()) + 46
6   libstdc++.6.dylib               0x3366fe8a std::terminate() + 10
7   libstdc++.6.dylib               0x3366ff5a __cxa_throw + 78
8   libobjc.A.dylib                 0x36367c84 objc_exception_throw + 64
9   Foundation                      0x33f69924 __NSThreadPerformPerform + 648
10  CoreFoundation                  0x33e4ba72 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 6 …
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c ipad ios

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

什么是真空编码?

术语"真空编码"是什么意思?我之前听过这个词,但我无法在谷歌上找到任何相关内容.

coding-style terminology

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

roUrlTransfer功能在BrightScript中不起作用

我正在为Roku创建自己的频道.我需要从服务器上的JSON文件中获取视频和图像的流.

我的SceneGraph .xml文件中的代码:

<![CDATA[sub init()
 data = CreateObject("roUrlTransfer")
 data.SetUrl(url)
 data.AsyncGetToString()
end sub]]>
Run Code Online (Sandbox Code Playgroud)

此代码在Task节点和main.brs文件中正常工作,但在我的.xml文件中,它会生成此错误:"无效的BrightScript组件或接口引用".

请帮我解决一下.

roku brightscript

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

表达后不应该借用价值结束吗?

我试图弄清楚为什么下面的代码不能编译.

期望的行为是:给定整数向量,找到其最大值并将最大值+ 1的值推送到同一向量上.

fn main() {
    let mut vector = vec![1, 3, 2];
    let greatest_value;
    { // 1
        let mut gv = &vector[0]; // 2
        for x in &vector {
            if x > gv {
                gv = x;
            }
        }
        greatest_value = gv;
    } // 3
    vector.push(greatest_value + 1);
    println!("O maior é: {}", greatest_value);
}
Run Code Online (Sandbox Code Playgroud)

细腻的部分是类中的push方法Vec需要一个可变的借用来修改自我实例vector.编译器看到我在注释的行中进行了一次不可变借用 // 2:

error[E0502]: cannot borrow `vector` as mutable because it is also borrowed as immutable
  --> src/main.rs:13:5
   |
5 …
Run Code Online (Sandbox Code Playgroud)

rust

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