草庐IT

parameter-passing

全部标签

ios - Objective-C 方法签名 : Parameter types can differ between declaration and implementation?

我可以在@interface中声明一个参数类型为NSString*的方法:-(id)initWithString:(NSString*)str;而在实现中是NSNumber*:-(id)initWithString:(NSNumber*)str有关完整示例,请参见下面的代码。当调用[Worktest]时,输出是a.x=Hi,所以传入的NSString*通过了,可以看到“correct"initWithString方法被调用。为什么编译器接受这段代码?当参数类型不同时,我可以让编译器报错吗?引自Apple文档DefiningClasses:Theonlyrequirementisthat

iphone - 发送 'MKOverlayView to parameter of incompatible type ' id<MKOverlay>'

在向我的mapView添加叠加层时,我收到以下警告:Sending'MKOverlayView*const__strong'toparameterofincompatibletype'id'代码运行良好,叠加层按应有的方式绘制,但我很想去掉警告。导致它的代码:for(MKOverlayView*overlayin[mapViewoverlays]){[mapViewremoveOverlay:overlay];}(显然,for循环内的那一行是引发此错误的原因)谷歌没有针对该错误的单一结果。例如仅与MKAnnotationView类似。那里的解决方案(例如):for(id*overlay

kotlin - Kotlin 是 "pass-by-value"还是 "pass-by-reference"?

据我所知,Java是来自thispost的值传递.我来自Java背景,我想知道Kotlin使用什么来在两者之间传递值。喜欢Extensions或Methods等等 最佳答案 每次我听到关于“按值传递”与“按引用传递”Java辩论时,我总是这么想。我给出的答案是:“Java传递引用(按引用传递)的副本(按值传递)”。所以大家都很开心。我会说Kotlin的功能与基于JVM的语言相同。更新好的,距离这个答案已经有一段时间了,我认为应该包括一些澄清。正如@robert-liberatore在评论中提到的那样,我所描述的行为是真实的对象。每当

kotlin - Kotlin 是 "pass-by-value"还是 "pass-by-reference"?

据我所知,Java是来自thispost的值传递.我来自Java背景,我想知道Kotlin使用什么来在两者之间传递值。喜欢Extensions或Methods等等 最佳答案 每次我听到关于“按值传递”与“按引用传递”Java辩论时,我总是这么想。我给出的答案是:“Java传递引用(按引用传递)的副本(按值传递)”。所以大家都很开心。我会说Kotlin的功能与基于JVM的语言相同。更新好的,距离这个答案已经有一段时间了,我认为应该包括一些澄清。正如@robert-liberatore在评论中提到的那样,我所描述的行为是真实的对象。每当

iphone - 用户点击 UILocalNotification : Can it pass data to the app?

我正在创建本地UILocalNotification并将其作为横幅显示给用户。是否可以设置它,以便当用户点击它并返回到应用程序时,该应用程序将收到关于它是特定类型通知的某种数据?我想在应用程序中打开一个特定的ViewController。我认为最好的方法实际上是向应用程序发送一个URL,或者有没有办法访问UILocalNotification以便我可以测试是哪种类型并执行正确的操作? 最佳答案 要从传递给iOS应用程序的本地NSUserNotification获取数据,您需要做的就是实现以下方法:-(void)application

java - Kotlin 泛型 Array<T> 结果为 "Cannot use T as a reified type parameter. Use a class instead"但 List<T> 没有

我有一个接口(interface),其中包含T的数组(或列表)和一些元数据。interfaceDataWithMetadata{valsomeMetadata:IntfungetData():Array}如果我编写接口(interface)的最简单实现,我会在emptyArray()上得到一个编译错误:“CannotuseTasareifiedtypeparameter.Useaclassinstead.”classArrayWithMetadata(overridevalsomeMetadata:Int):DataWithMetadata{privatevarmyData:Array

java - Kotlin 泛型 Array<T> 结果为 "Cannot use T as a reified type parameter. Use a class instead"但 List<T> 没有

我有一个接口(interface),其中包含T的数组(或列表)和一些元数据。interfaceDataWithMetadata{valsomeMetadata:IntfungetData():Array}如果我编写接口(interface)的最简单实现,我会在emptyArray()上得到一个编译错误:“CannotuseTasareifiedtypeparameter.Useaclassinstead.”classArrayWithMetadata(overridevalsomeMetadata:Int):DataWithMetadata{privatevarmyData:Array

ios - FBSession : No AppID provided; either pass an AppID to init, 或添加字符串值键

当我打开FBSession(FBSDK3.0)时,出现此错误:FBSession:NoAppIDprovided;eitherpassanAppIDtoinit,oraddastringvaluedkeywiththeappropriateidnamedFacebookAppIDtothebundle*.plist我知道我可以在.plist中为FacebookAppID添加一个值,但是我应该使用什么方法来使用AppId初始化FBSession?我尝试过使用[FBSessionsetDefaultAppID],但似乎没有用。 最佳答案

ios - NSInternalInconsistencyException : 'Invalid parameter not satisfying: !stayUp || CLClientIsBackgroundable(internal->fClient)'

我试图让我的应用程序在Xcode7beta中运行,但我遇到了这个异常:NSInternalInconsistencyException:'Invalidparameternotsatisfying:!stayUp||CLClientIsBackgroundable(internal->fClient)'这是调用堆栈:0CoreFoundation0x00000001063a89b5__exceptionPreprocess+1651libobjc.A.dylib0x0000000105e20debobjc_exception_throw+482CoreFoundation0x00000

iphone - iOS 开发 : What's a simple way to calculate the number of seconds that have passed between two events?

我需要计算iPhone上两个事件之间经过的秒数。为此,我需要存储第一个事件发生的时间,并将其与第二个事件发生的时间进行比较,看看是否已经超过30秒。我正准备开始尝试使用NSDate类来完成此操作,但我想知道是否有一种不使用对象的更简单方法来完成此操作,因为我更愿意存储简单的内在值而不是对象。谢谢你的智慧! 最佳答案 如果你真的想避免存储对象,你可以这样做:doublestartTime=[[NSDatedate]timeIntervalSince1970];//RunyourothercodedoubleendTime=[[NSDa