我有两个文本框,用户可以input2个正整数(使用Objective-C)。 目标是在两个数字之间返回一个随机值。 我用“男人arc4random”,仍然不能完全包围我的头。 我已经想出了一些代码,但它是越野车。 float lowerBound = lowerBoundNumber.text.floatValue; float upperBound = upperBoundNumber.text.floatValue; float rndValue; //if lower bound is lowerbound < higherbound else switch the two around before randomizing. if(lowerBound < upperBound) { rndValue = (((float)arc4random()/0x100000000)*((upperBound-lowerBound)+lowerBound)); } else { rndValue = (((float)arc4random()/0x100000000)*((lowerBound-upperBound)+upperBound)); } 现在,如果我把值0和3,它似乎工作得很好。 但是,如果我使用数字10和15,我仍然可以获得低至1.0000000或2.000000的“rndValue”。 我是否需要详细说明algorithm,还是需要改变我使用arc4random的方式?
这个概念似乎困扰着我。 为什么NSError对象需要将其指针传递给修改对象的方法? 例如,不只是传递一个错误的引用做同样的事情? NSError *anError; [myObjc doStuff:withAnotherObj error:error]; 然后在doStuff中: – (void)doStuff:(id)withAnotherObjc error:(NSError *)error { // something went bad! [error doSomethingToTheObject]; } 为什么上面的工作不像大多数其他对象消息传递模式那样工作? 为什么我们必须使用错误:(NSError **)错误?
遍历NSString中所有字符的最好方法是什么? 你想循环的string的长度,并使用该方法。 [aNSString characterAtIndex:index]; 或者你想用户基于NSString的字符缓冲区?
在iPhone中永久存储数据通常使用Core Data或sqlite3来完成。 大多数人更喜欢将NSUserDefaults作为应用程序首选项的存储,而不是将其用作普通数据库(如sqlite)。 我发现大量的数据可以存储在NSUserDefaults中,使用起来非常简单,而且速度很快。 那么为什么不把它当作永久存储呢? NSUserDefaults作为数据库的局限性是什么? 更新: 我经常使用三种不同的方法将数据保存到磁盘。 核心数据 将对象序列化为plists NSUserDefaults的 我不再使用FMDB(或直接使用sqlite)。 每种方法的主要优点和缺点是什么? 我遇到的NSUserDefaults的一些优点: sorting,分组等可以很容易地使用NSPredicate来完成。 NSUserDefaults是线程安全的。 它需要一行来获取并保存数据到NSUserDefaults。
如果我读到Mike Ash的“Zeroing Weak References”写法是正确的,那么弱引用就像是在没有ARC的情况下assign引用。 但是,如果被引用的对象被释放,而不是获得一个“悬挂指针”(意味着指向一个释放对象的指针),指针将被设置nil 。 这是正确的, 这是否发生在任何标记为weak或assign属性(当ARC处于活动状态时)? 如果这是正确的,这将消除许多SIGABRT。
我知道SIRI-Services没有公开的API,但是有简单的语音识别API吗? 所以,如果我有一个文本字段,用户点击该文本字段,一个典型的麦克风button的键盘出现,如果他按下它的话语得到承认和转换成一个string对象? 或者这个button可能默认显示?
是否有任何图书馆或课程在iPhone上显示360度全景? 我在这里find了这个: http : //code.google.com/p/panoramagl/,但它不是最新的,只适用于老版本的ios。 我非常感谢任何可以帮助我创buildios 360度全景视图的链接。
由于我更新到xcode 4.3并让我们的debugging器切换到lldb,所以打印成员variables的任何请求都会失败,并显示以下错误消息: (lldb) print request error: error: reference to 'id' is ambiguous note: candidate found by name lookup is 'id' note: candidate found by name lookup is 'id' error: 1 errors parsing expression '自我'可以: (lldb) print self (LoginViewController *) $6 = 0x1cd54d50 而其他forms的打印成员variables也失败了: (lldb) print self.request error: property 'request' not found on object of type […]
在Objective-C中,您可以使用以下方法调用类方法: [MyClass aClassMethod]; 你可以用下面的方法查询一个实例的types: [someInstance isKindOfClass:[MyClass class]]; 但是,为什么我们需要做[MyClass class] ,而不是像这样简单地提供MyClass : [someInstance isKindOfClass:MyClass]; 是否有一个原因,编译器遇到MyClass作为接收器(指针types),而不是作为参数罚款? 这是parsing语言的限制吗? 或者可能是编译器的限制?
我在C ++知识方面有点温和,但对Objective-C几乎一无所知。 我正在计划(甚至开始)学习Objective-C,所以我可以尝试编写一些iOS甚至是Mac OS X应用程序,但是我对于目前还找不到的东西感到好奇。 是否可以使用包含UI组件的C ++完全编写iOS和/或Mac OS X应用程序? 如果不可能完全用C ++来完成,那么在多大程度上可以使用C ++? 我还没有看到任何示例说明这些项目。 我打算为iOS和Android编写一些移动应用程序,并且在可能的情况下,我希望将大部分的逻辑放在C ++代码中,以实现最大的可移植性。 我已经知道我可以做到这一点,但我不确定这个程度。