在为iOS开发时,您应用的第一个入口点就是-[AppDelegate application:didFinishLaunchingWithOptions:].此方法的返回类型是a BOOL.默认情况下,此方法的返回类型为YES.这是Xcode自动生成的代码.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,Xcode为您输入return语句,值为YES.当我将return语句的值更改为NO,并且不更改任何其他内容时,没有任何反应.该应用程序不会退出或显示任何异常行为.这就引出了一个问题,当返回的值无关紧要时,返回BOOL的方法的目的是什么?如果返回的值无关紧要,为什么方法不返回void?
注意:改变回报之后我的一些期望NO是
NO已退回)在新的Xcode 6 beta中,我试图制作一个Objective-C protocol.令我沮丧的是,当我点击"创建新文件"时,protocol我们都知道并喜爱以前的Xcodes 的模板已经消失了.

我彻底搜索了整个"创建文件"菜单但无济于事.有没有人知道protocol模板的位置,或者我是否必须从头开始制作一个空.h文件?
感谢您的时间.
在Java,Javascript,C,C++,C#等语言中,我看到的代码类似于教程和代码片段中的代码.
int foo = 5;
int bar = 10;
baz(foo, bar);
Run Code Online (Sandbox Code Playgroud)
我假设这些用于快速变量名称,当命名约定不需要遵循时,例如快速片段,但它们已经变得如此受欢迎,它们似乎是语言的一部分.例如,python已交易foo和barfor spam和eggs.
spam = 'spam'
eggs = 'eggs'
spam_and_eggs(spam, eggs)
Run Code Online (Sandbox Code Playgroud)
当我看到这些变量名时,我立即想到了python而没有其他语言.其他语言是否有签名占位符变量名称,如python?
在C中,我们可以转换void*为任何其他指针.
但是C++禁止它.
int *a = malloc(4);
Run Code Online (Sandbox Code Playgroud)
导致此错误:
invalid conversion from ‘void*’ to ‘int*’ [-fpermissive]
Run Code Online (Sandbox Code Playgroud)
c ++中有潜在的危险吗?
有没有c ++的例子?
在搜索文档后,我仍然无法找到合理的解释CGVector.文档中提到的唯一一次是它何时显示它typedef是什么.
struct CGVector {
CGFloat dx;
CGFloat dy;
};
typedef struct CGVector CGVector;
Run Code Online (Sandbox Code Playgroud)
从基本几何学我知道这dx意味着delta x,或x的变化.同样的道理dy.有了这些知识,CGVector从编程的角度来看,什么是(或任何一种矢量)?如果它有帮助,我试图在SpriteKit SKPhysicsBody和速度的上下文中理解一个向量.
当我UITextView在Xcode 6 Beta中创建一个新的子类时,会自动提供以下代码.
import UIKit
class TerminalView: UITextView {
init(frame: CGRect) {
super.init(frame: frame)
// Initialization code
}
}
Run Code Online (Sandbox Code Playgroud)
以前的代码(完全由Xcode提供,没有删除)会产生以下错误.
Must call a designated initializer of the superclass 'UITextView'
据我所知,在指定的子类UIView是-initWithFrame:(或斯威夫特,init(frame:)如果是这样的话,为什么不通过Xcode中导致错误提供的代码?我已经添加任何新的实例变量的类,所以什么否则必须初始化.
我只是在学习Objective-C,我想知道为什么以下代码会导致错误?
Person *p = [[Person alloc] init];
Person *p = [[Person alloc] init];
Run Code Online (Sandbox Code Playgroud)
在这种情况下,第二行给出一个错误,指出已经定义了"p"指针.
这对我来说很有意义; 但是,如果无法重新定义指针,那么为什么以下代码有效?
for(int i = 0; i<10; i+=1) {
Person *p = [[Person alloc] init];
}
Run Code Online (Sandbox Code Playgroud)
当我在XCode中输入它时,它不会给出任何错误,它编译并运行得很好.在这种情况下,我希望循环只是重新定义"p"指针,类似于顺序声明它们,但事实并非如此.
有没有人解释为什么会这样?
在一家视频会议公司实习时,有很多关于丢包的讨论。维基百科声明如下:
丢包通常是由网络拥塞引起的。
我知道因为视频需要通过网络发送如此大量的数据,所以数据包必然会丢失。
我不明白的是为什么在其他情况下(例如 HTTP 请求和 AJAX 调用)没有出现丢包的情况。如果丢包真的是网络拥塞造成的,为什么我自己的HTTP请求从来没有遇到过?
HTTP 连接是否不会丢失数据包,或者我发送的请求太小而不会受到影响。如果 HTTP 对丢包免疫,为什么会这样?
当我UIViewController在Xcode中创建一个新的子类时,它带有默认方法,如init和viewDidLoad.最后一个是didReceiveMemoryWarning.这让我想到,如果我使用ARC,我应该担心吗?这是默认方法.
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
Run Code Online (Sandbox Code Playgroud)
这里的关键字是dispose.由于我release在使用ARC时无法显式调用任何对象,我是否应该实现此方法?
在C中,预处理程序语句可以使用\字符扩展到多行.
#define SWAP(a, b) { \
a ^= b; \
b ^= a; \
a ^= b; \
}
Run Code Online (Sandbox Code Playgroud)
这会将宏传播到几行,但有没有办法在一行结束前关闭宏?即:我想在与宏相同的行上编写代码,但不希望它成为宏的一部分.例如,有没有办法使以下可能?
#include <stdio.h> (some character here to end macro) int main(int argc, const char **argv) { return 0; }
Run Code Online (Sandbox Code Playgroud)
有没有办法合法地将预处理程序语句和main函数(或任何其他代码)放在同一行上?
objective-c ×4
xcode ×3
c ×2
ios ×2
beta ×1
c++ ×1
coding-style ×1
http ×1
initializer ×1
macros ×1
networking ×1
newline ×1
packet ×1
packet-loss ×1
protocols ×1
scope ×1
sockets ×1
sprite-kit ×1
swift ×1
uitextview ×1
variables ×1