小编rho*_*mes的帖子

Swift 2 - 使用break on if语句的用例?

Swift 2的指南提到你可以结束if语句的程序执行.我个人从未使用if语句中断.

break语句结束循环,if语句或switch语句的程序执行......当break语句后跟语句标签的名称时,它结束循环的程序执行,if语句或switch语句命名通过那个标签.

在什么情况下会在if语句中使用break?这种语言功能似乎毫无用处.

TEST:
if (true) {
    break TEST
}
Run Code Online (Sandbox Code Playgroud)

if-statement break swift swift2

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

我相信clang错误地允许内联友人函数访问封闭范围内的数据.gcc和vs2013都拒绝此代码

friend函数f无权访问封闭类的私有成员A.

#include <iostream>

class A{
    const static int p = 1;
    class B {
        friend void f() {
            std::cout << p << '\n';
            std::cout << q << '\n';
        }
    };
public:
    const static int q = 2;
};
void f();

int main()
{
    f();
}
Run Code Online (Sandbox Code Playgroud)

至少,这是我认为N4140中的[class.nest]/4所说的(见下文).

§9.7/ 4

与成员函数一样,嵌套类中定义的友元函数(11.3)位于该类的词法范围内; 它遵循与名称绑定相同的规则作为该类的静态成员函数(9.4),但它对封闭类的成员没有特殊的访问权限.

实例

c++ friend clang clang++ c++14

14
推荐指数
1
解决办法
231
查看次数

TopCoder编码环境链接器错误

我试图在TopCoder中提交问题的解决方案,这需要提交遵循其预定义的类和方法.由于我是TopCoder的新手,我主要是尝试调整编码界面.此代码在我的计算机上完美编译.不幸的是,在TopCoder上,我遇到了错误:

你的代码没有编译:

错误链接:

AdditionGame-stub.o:在函数main'AdditionGame.o:main': AdditionGame-stub.cc:(.text.startup+0x0): multiple definition ofAdditionGame-stub.cc :(.text.startup + 0x0):首先在这里定义collect2:错误:ld返回1退出状态

请帮忙.这是我的代码:

 class AdditionGame {

public:

int getMaximumPoints(int a, int b, int c, int n){
        int temp;
        if(a<b){temp=a; a=b; b=temp;}
        if(b<c){temp=b; b=c; c=temp;}

        int sum=0;
        for(int i=0; i<n; i++){
            if(a>0){sum=sum+a;}
            if(a>0){a=a-1;}
            if(a<b){temp=a; a=b; b=temp;}
        if(b<c){temp=b; b=c; c=temp;}
        }

        return sum;
    }

};


#include <iostream>
#include <algorithm>
using namespace std;

int main(){
    AdditionGame add;
int A,B,C,N;

cin>>A>>B>>C>>N;

int p = add.getMaximumPoints(A, B, C, N);
 cout<<p;
return 0; …
Run Code Online (Sandbox Code Playgroud)

c++

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

上下文菜单IBActions未在Xcode 7 Beta中触发

当我将现有的iOS app/WatchKit应用程序从Swift 1.x/WatchKit 1.x转换为Swift 2.0/WatchKit 2.0(beta)时,我最初在Xcode beta中发现了这个问题.一般问题:在模拟器中运行WatchKit App时,不会调用MenuItems的IBAction函数.刚刚遇到Xcode 7 beta 4的问题.

重现步骤:

  1. 在Xcode 7b3中创建一个新的"使用WatchKit app的iOS应用程序"项目.输入WatchKit App的Interface.storyboard的伴随视图模式.
  2. 您应该在实现WKInterfaceController的InterfaceController.swift文件旁边看到storyboard.
  3. 将"菜单"拖到故事板中的界面控制器上.那里应该有一个菜单项.
  4. 添加另一个菜单项.
  5. 将第一个项目的标题设置为"菜单A",并将其图像设置为"接受".
  6. 对第二个项目执行相同操作,但将其命名为"菜单B".
  7. 控制 - 从每个菜单项拖动到InterfaceController.swift并将相应的IBActions命名为指示来自哪个manu的东西.
  8. 将打印语句添加到willActivate函数以及每个IBAction.
  9. 使用模拟器在调试器中运行.
  10. 在它最终连接之后(在几次错误启动之后),在模拟器中多次选择菜单项.

预期结果: 我希望IBActions能够被调用.

实际结果: 未触发IBAction断点,也未激活IBAction print()语句.

版本: 7.0版beta 3(7A152u)

我搜索了developer.apple.com以及StackOverflow的论坛,没有发现这个问题,也没有在发行说明中.

xcode ios xcode7

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

标签 统计

c++ ×2

break ×1

c++14 ×1

clang ×1

clang++ ×1

friend ×1

if-statement ×1

ios ×1

swift ×1

swift2 ×1

xcode ×1

xcode7 ×1