草庐IT

ios - 如何使用 NS_RETURNS_INNER_POINTER 标志

我执行一项采用现代Objective-C的任务,我在Xcode中使用重构工具:编辑>重构>转换为现代Objective-C语法。在项目中我有一个方法返回constvoid*类型。并且在重构工具自动添加NS_RETURNS_INNER_POINTER标志之后这个方法之后。我确实在FoundationOlderNotes中检查过这个标志但我不清楚。是否有必要为任何返回非对象指针类型的方法或属性添加NS_RETURNS_INNER_POINTER?编译器对ARC中方法的指针返回到底做了什么? 最佳答案 NS_RETURNS_INNER_P

IOS 在 NS(Mutable)Dictionary 中获取一个数组

我正在尝试在NSMutableDictionary中获取一个数组,如下所示:{coments=();"foto_user"="";fotos=({fecha="2012-08-3119:44:31";id=4926;nombre="image5773.jpg";posicion=0;ruta="img/";tipo=1;},{fecha="2012-08-3119:44:31";id=4927;nombre="image1779.jpg";posicion=0;ruta="img/";tipo=1;},{fecha="2012-08-3119:44:31";id=4928;nombre

objective-c - NS字典计数

我如何计算“账单”中有多少个元素?bills=({id=1;name="CursusNibhVenenatis";value="875.24";},{id=2;name="ElitFusce";value="254.02";});我是这样数的:NSUIntegerkeyCount=[resultsDictionarycount];NSLog(@"%i",keyCount);谢谢! 最佳答案 一个天真的解决方案假设OP想要计算bills,它恰好是一个数组,所以解决方案是NSLog(@"Count:%i",[[resultsDictio

networking - 我如何强制 tcp 丢弃缓冲区中最旧的数据段并接受 NS2 中应用程序写入的新数据

我正在尝试调整TCP以在实时通信中正常工作。要做到这一点,规范之一是强制TCP接受应用程序写入的新数据,即使缓冲区已满,这使得TCP有时“不可靠”。这样,应用程序写入调用就不会被阻塞,发送方应用程序的时间也不会中断。我认为NS2中必须有一个选项才能使其成为可能。那么,如何强制TCP丢弃缓冲区中最旧的数据段并接受NS2中应用程序写入的新数据? 最佳答案 你不能。TCP是“可靠流”。任何允许删除数据的功能都与该目标背道而驰,因此不存在此类支持。如果您希望能够丢弃数据,如果您想要“最可靠的传送”而不是“最大努力”,您将不得不切换到UDP之

objective-c - Obj-C 到 Swift 桥接问题 : NS_ENUM -> enum

我在带有桥接的Swift项目中使用Obj-C库。除了具有自定义值的NS_ENUM之外,一切正常:Obj-C(原版)typedefNS_ENUM(NSInteger,HTTPStatusCode){//Informational1xxHTTPStatusCodeContinue=100,HTTPStatusCodeSwitchingProtocols=101,HTTPStatusCodeProcessing=102,HTTPStatusCodeCheckpoint=103,...Swift(带桥接)enumHTTPStatusCode:Int{//Informational1xxcase

objective-c - NS_ENUM 到 Swift 3 没有按预期工作

我正在使用Swift3和xcode8。我是objective-C的新手,也是swift的新手,所以这可能是个白痴问题。但是这里开始了!我正在从objective-C过渡到swift3。这是objective-C的代码片段:typedefNS_ENUM(NSInteger,MaplyMapType){MaplyMapType3D,MaplyMapTypeFlat,};@interfaceMaplyViewController:MaplyBaseViewController///@briefInitializeasaflator3Dmap.-(nonnullinstancetype)ini

swift - Swift 中导入的 NS_OPTIONS (RawOptionSetType) 的 Switch 语句?

Swift中的switch语句更具表现力。我想知道这是否可能:让我们以UIViewAutoresizing为例。它在Objective-C中定义如下:typedefNS_OPTIONS(NSUInteger,UIViewAutoresizing){UIViewAutoresizingNone=0,UIViewAutoresizingFlexibleLeftMargin=1我可以像枚举一样在Swift中使用它:letfoo=UIViewAutoresizing([.FlexibleHeight,.FlexibleTopMargin])是否可以使用switch语句而不是多个if语句?iff

objective-c - 如何使用 Swift 1.2 确定 NS_ENUM 的未记录值

例如,下面的NS_Enum被定义...typedefNS_ENUM(NSInteger,Type){TypeNone=0,TypeA=1,}varx=2iflettype:Type=Type(rawValue:x){//Swift1.2executesthisblock.}else{//Previousswiftexecutesthisblock.}如何确定x是否在NS_ENUM上定义? 最佳答案 我假设这是Swift1.2中以下变化的结果,记录在Xcode6.3releasenotes:ImportedNS_ENUMtypeswi

objective-c - NS_SWIFT_NAME 基本名称验证错误

我的头文件Test.h中有以下代码:#import@interfaceTest:NSObject-(void)testNS_SWIFT_NAME(verify());@end这是我的实现文件:#import"Test.h"@implementationTest-(void)test{return;}@end然后我尝试将此接口(interface)导入我的swift源代码,但我收到以下警告:'swift_name'属性具有无效的基本名称标识符并且此函数的swift名称仍然是测试。其他名称如verif或verify1效果很好。有什么想法吗? 最佳答案

objective-c - NSErrorDomain + NS_ERROR_ENUM 使类型查找不明确。为什么?

我有一个在Objective-C中看起来像这样的错误NSString*constJKConfigurationErrorDomain;typedefNS_ENUM(NSInteger,JKConfigurationCode){JKConfigurationCodeUnknown,JKConfigurationCodeSomethingBad,JKConfigurationCodeParsing,};现在,这在Swift中使用起来很丑陋。但自Swift4以来,wecanuseNSErrorDomainandNS_ERROR_ENUM在Swift中使导入的错误更好:NSErrorDomai