在Kochan的“Objective-C编程”一书中,我一直在阅读Objective-C中的位运算符。 我对这个部分非常困惑,尽pipe到目前为止,我已经真正理解了所有其他的东西。 这是一本书的引用: 按位与运算符 按位与经常用于屏蔽操作。 也就是说,这个操作符可以很容易地用来将一个数据项的特定位设置为0.例如,该语句 w3 = w1 & 3; 将w1的值与常数3按位“与”分配给w3。这具有将w中除了最右边两位之外的所有位设置为0并保留来自w1的最右边两位的相同的作用。 与C中的所有二进制算术运算符一样,二进制位运算符也可以通过添加等号来用作赋值运算符。 该声明 word &= 15; 因此执行与以下相同的function: word = word & 15; 此外,它的作用是将除了最右边四个字之外的所有字都设置为0.在使用常量执行按位运算时,通常以八进制或hex表示常量更为方便。 好的,这就是我想要了解的。 现在,我对这个概念非常困惑,如果有人愿意帮我解决这个问题,我只是想澄清一下。 当这本书现在引用“设置所有的比特”时,所有的比特……究竟是什么。 这不就是二垒的0或1,换句话说,二进制? 如果是这样的话,为什么在第一个例子中,除了“最右边的2”之外的所有位都是0呢? 是2,因为它是3 – 1,从我们的常数? 谢谢!
在objective-c中使用ivars和属性的三种方法之间的语义差异是什么? 1。 @class MyOtherObject; @interface MyObject { } @property (nonatomic, retain) MyOtherObject *otherObj; 2。 #import "MyOtherObject.h" @interface MyObject { MyOtherObject *otherObj; } @property (nonatomic, retain) MyOtherObject *otherObj; 3。 #import "MyOtherObject.h" @interface MyObject { MyOtherObject *otherObj; }
是否有可能在运行时向Objective C对象添加属性?
我正在使用CABasicAnimation来移动和调整图像视图。 我想将图像视图添加到超级视图,animation,然后从超级视图中删除。 为了实现我正在侦听我的CAAnimationGroup委托调用,一旦它被调用,我从超级视图中删除图像视图。 问题是,有时图像在从超级视图中移除之前在初始位置闪烁。 什么是避免这种行为的最好方法? CAAnimationGroup *animGroup = [CAAnimationGroup animation]; animGroup.animations = [NSArray arrayWithObjects:moveAnim, scaleAnim, opacityAnim, nil]; animGroup.duration = .5; animGroup.delegate = self; [imageView.layer addAnimation:animGroup forKey:nil];
我有一个名为baseView的UIView ,在那里我有initWithFrame ,我添加一些其他的意见,并做一些自定义的东西。 同样的观点也有一个NIB文件。 现在我有一个名为AppController的UIViewController类,我想将baseView视图添加到AppController视图的视图,所以我这样做: self.view = baseView; 但问题是NIB文件没有被加载。 我如何确保定制的东西和NIB文件得到加载/运行?
如何在iPhone上编程拨打电话? 我试了下面的代码,但没有发生任何事情 NSString *phoneNumber = mymobileNO.titleLabel.text; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
好的,这是交易,我讨厌提出有关我的debugging和崩溃的问题。 因为我通常自己处理它们,但即使在查看了多个问题之后,我也无法解决这个问题 。 好,所以这里是问题,我发现我的应用程序随机打开和closures堆栈跟踪崩溃: *** -[ViewController respondsToSelector:]: message sent to deallocated instance 0x1e5d2ef0 在哪里ViewController可以改变,有时我的代码崩溃的地方, 没有相关的特定的ViewController ,并没有拥有或调用它。 此外,为了获得控制台跟踪,我已经启用僵尸,否则我将无法控制台打印,我只会得到: objc_msgSend ,我知道这意味着我正在发送消息的东西被释放。 但是我找不到那个地方…我真的被困住了! 通常我总是debugging我的崩溃,所以我真的坚持这一点。 再次,这在不同的时间,在不同的地方崩溃。 而它崩溃的地方几乎没有相关的ViewController 。 我觉得这很混乱。 你需要我的任何代码吗? 我有很多的文件,因为它在不同的地方崩溃,分发我的代码将是一团糟! 我试图添加没有运气的符号断点,僵尸不适用于iOS的乐器应用程序。 我无法在模拟器上运行我的应用程序,因为它具有不支持的架构框架。 感谢大家…
考虑以下情况:我有一个基于故事板的应用程序。 我将一个ViewController对象添加到故事板,将该ViewController的类文件添加到项目中,并在IB身份检查器中指定新类的名称。 现在我该如何从AppDelegate以编程方式引用此ViewController? 我已经做了一个与相关的类的variables,并将其转换为一个IBOutlet属性,但我没有看到任何能够在代码中引用新的ViewController的任何方式 – 任何尝试按Ctrl拖动连接不起作用。 即在AppDelegate中,我可以像这样到达基础ViewController (MyViewController*) self.window.rootViewController 但是故事板中包含的任何其他ViewController如何?
我有一个设置了工作login和主视图控制器的故事板,后者是login成功时用户导航到的视图控制器。 我的目标是显示主视图控制器立即如果authentication(存储在keychain)成功,并显示login视图控制器,如果authentication失败。 基本上,我想在我的AppDelegate中做到这一点: // url request & response work fine, assume success is a BOOL here // that indicates whether login was successful or not if (success) { // 'push' main view controller } else { // 'push' login view controller } 我知道方法performSegueWithIdentifier:但是这个方法是UIViewController的一个实例方法,所以不能从AppDelegate中调用。 我如何使用我现有的故事板做到这一点? 编辑: 故事板的初始视图控制器现在是一个没有连接任何东西的导航控制器。 我使用了setRootViewController:区别,因为MainIdentifier是一个UITabBarController。 那么这就是我的线条样子: – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { BOOL […]
我需要testing对象是NSStringtypes还是UIImageView 。 我怎样才能做到这一点? 是否有某种types的“isoftype”方法?