标签: cocoa

如何检查iOS或macOS上的活动Internet连接?

我想查看我是否在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中被弃用)如果是这样,有什么更好的方法来实现这一目标?

macos cocoa cocoa-touch reachability ios

1309
推荐指数
34
解决办法
44万
查看次数

这是什么意思?"'NSUnknownKeyException',原因:...此类不是键值X的键值编码兼容"

我正在尝试将a UILabelIBOutlet我班级中的创建链接起来.

我的应用程序崩溃,出现以下错误.这是什么意思?我该如何解决?

***由于未捕获的异常'NSUnknownKeyException'终止应用程序,原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:此类不是密钥XXX的密钥值编码.

macos cocoa cocoa-touch interface-builder ios

1143
推荐指数
28
解决办法
83万
查看次数

Objective-C中的常量

我正在开发一个Cocoa应用程序,并且我使用常量NSStrings作为存储我的首选项的键名的方法.

我知道这是一个好主意,因为它可以在必要时轻松更改密钥.此外,它是整个'将您的数据与逻辑分离'的概念.

无论如何,是否有一种很好的方法可以为整个应用程序定义一次这些常量?我确信这是一种简单而聪明的方式,但是现在我的课程只是重新定义了他们使用的课程.

cocoa constants objective-c

996
推荐指数
13
解决办法
42万
查看次数

如何在Objective-C中创建委托?

我知道代表们的工作方式,我知道如何使用它们.

但是我该如何创建呢?

cocoa delegates objective-c callback ios

735
推荐指数
14
解决办法
35万
查看次数

@class vs. #import

根据我的理解,如果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 cocoa-touch objective-c

707
推荐指数
10
解决办法
17万
查看次数

Cocoa Autolayout:内容拥抱与内容压缩阻力优先

关于Cocoa Autolayout关于内容拥抱和抗压缩性之间差异的Apple文档,我找不到明确的答案.

有人可以解释他们的用法和差异吗?

cocoa autolayout

634
推荐指数
7
解决办法
20万
查看次数

可可:框架和边界之间有什么区别?

UIView及其子类都具有属性framebounds.有什么不同?

cocoa cocoa-touch uiview

567
推荐指数
9
解决办法
18万
查看次数

NS前缀是什么意思?

Cocoa/Cocoa Touch中的许多类都有NS前缀.这是什么意思?

cocoa cocoa-touch objective-c ios

560
推荐指数
9
解决办法
14万
查看次数

@synthesize vs @dynamic,有什么区别?

什么是实现之间的区别@property@dynamic@synthesize

cocoa cocoa-touch objective-c synthesize

553
推荐指数
7
解决办法
15万
查看次数

如何打印方法名称和行号并有条件地禁用NSLog?

我正在做一个关于在Xcode中调试的演示文稿,并希望获得有关使用NSLog的更多信息.

特别是,我有两个问题:

  • 有没有办法轻松NSLog当前方法的名称/行号?
  • 有没有办法在编译发布代码之前轻松"禁用"所有NSLog?

xcode cocoa cocoa-touch objective-c nslog

446
推荐指数
11
解决办法
14万
查看次数