我想查看我是否在iOS上使用Cocoa Touch库或使用Cocoa库在macOS 上建立了Internet连接.
我想出了一个方法,使用一个NSURL
.我这样做的方式似乎有点不可靠(因为即使谷歌有一天会失败并依赖第三方看起来很糟糕),而且如果谷歌没有回应,我可以查看其他网站的回复,在我的应用程序中看起来似乎很浪费并且不必要的开销
- (BOOL) connectedToInternet
{
NSString *URLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com"]];
return ( URLString != NULL ) ? YES : NO;
}
Run Code Online (Sandbox Code Playgroud)
我做得不好,(更不用说stringWithContentsOfURL
在iOS 3.0和macOS 10.4中被弃用)如果是这样,有什么更好的方法来实现这一目标?
我正在尝试将a UILabel
与IBOutlet
我班级中的创建链接起来.
我的应用程序崩溃,出现以下错误.这是什么意思?我该如何解决?
***由于未捕获的异常'NSUnknownKeyException'终止应用程序,原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:此类不是密钥XXX的密钥值编码.
我正在开发一个Cocoa应用程序,并且我使用常量NSString
s作为存储我的首选项的键名的方法.
我知道这是一个好主意,因为它可以在必要时轻松更改密钥.此外,它是整个'将您的数据与逻辑分离'的概念.
无论如何,是否有一种很好的方法可以为整个应用程序定义一次这些常量?我确信这是一种简单而聪明的方式,但是现在我的课程只是重新定义了他们使用的课程.
我知道代表们的工作方式,我知道如何使用它们.
但是我该如何创建呢?
根据我的理解,如果ClassA需要包含ClassB头,则应该使用前向声明,而ClassB需要包含ClassA头以避免任何循环包含.我也明白a #import
是一个简单的,ifndef
所以包含只发生一次.
我的询问是这样的:什么时候使用#import
,什么时候使用@class
?有时如果我使用@class
声明,我会看到一个常见的编译器警告,如下所示:
warning: receiver 'FooController' is a forward class and corresponding @interface may not exist.
真的很想理解这一点,而不是仅仅删除@class
前向声明并抛出一个#import
静音编译器给我的警告.
关于Cocoa Autolayout关于内容拥抱和抗压缩性之间差异的Apple文档,我找不到明确的答案.
有人可以解释他们的用法和差异吗?
Cocoa/Cocoa Touch中的许多类都有NS前缀.这是什么意思?
什么是实现之间的区别@property
与@dynamic
或@synthesize
?
我正在做一个关于在Xcode中调试的演示文稿,并希望获得有关使用NSLog的更多信息.
特别是,我有两个问题:
cocoa ×10
cocoa-touch ×7
objective-c ×6
ios ×4
macos ×2
autolayout ×1
callback ×1
constants ×1
delegates ×1
nslog ×1
reachability ×1
synthesize ×1
uiview ×1
xcode ×1