Objective-C(++) 的一些细节注意点

  • 如果把 objc 类放到一个库中, 然后在主程序里并不直接引用到类本身的构造, 而是通过诸如 .xib 中命名或者类似的  serialization 方式使用这个类的话, 需要在 Linker flags 中加入 -ObjC, 否则该类不会被正确构造. 一个例子是将一个 customized view 放到 .a 中, 然后在 xib 中将一个 view 的 class 设为此 custom view, 在主程序中 load 之后, 会发现其实只产生了一个 UIView 而未产生正确的 CustomView. 解决方法就是将 -ObjC 加入到 linker flag. 如果还不行的话, 还有最后一招 -all_load. 这个 linker flag 的意思是不管三七二十一, 把所有东西都连到最后的 binary 里.
  • 作为 Objc 类的成员定义的 C++ 类, 在默认情况下, 其非默认形式的构造函数和析构函数是不会在 objc 类 init 和 dealloc 时被调用的. 要让 objc 在 init 和 dealloc 时调用作为其成员的 C++ 类的非默认构造函数以及析构函数, 必须加上这个编译器参数:  -fobjc-call-cxx-cdtors. 另外, 如果使用了 NSZombieEnabled, 无论是否有上述编译器参数, 构造和析构函数都不会被调用到.

The new iPad 观感

iPad 3 来了,初看并没有什么惊喜。Retina 屏在 iPad 2 的时候就以为会有了,LTE 也是顺理成章的,iPad 2 摄像头质量之差令人发指早该用个更好的。设想过的光场照相机、触摸反馈屏、4核 CPU统统没有;存储居然还是16G~64G,实在是不堪,应该是64G~256G才配得上新的摄像能力和屏幕分辨率。

不过,Scott Brodrick 说得对,You enhanced display, you enhanced everything.

我经常需要找东西来整理思路,经过多年的折腾,纸和笔始终是最好用的。有了 iPad 之后,我经常想它来取代纸笔。因为手边并不总是有纸、笔及桌子,而且纸笔实在不方便修改。而 iPad 总是在的,上面也有一些很好用的画板软件。不过,屏幕实在有限,经常开了个头,觉得费劲,还是去找纸笔了。相信,新的 iPad 会好很多。

我几年前买过一台显示器,2048×1152分辨率的,拿来写程序很实用,只可惜是TN屏的。另外,不能直接用手或者笔在这个屏幕上画。新 iPad 2048×1536的分辨率超越了这台显示器,想想现在能随时买到的最高分辨率也不过2560×1440。想想2560×1440 的27英寸 Cinema 或者 30 英寸的 UltraSharp 要多少钱吧,光是这个屏就值回价钱了。

做为娱乐工具,新 iPad 超越了高清电视机;做为生产工具,新 iPad 超越了绝大多数的PC。iPad 在信息采集的能力上早已全面超越 PC,现在显示能力一块短板也补上了,新 iPad 为内容生产提供了无限的潜力。

简而言之,iPad 1或2还是娱乐工具+替补工具平台,The new iPad 实现了从替补到主力的华丽转身,或许,这就是为什么它不叫 iPad 3而叫 The new iPad 吧。

PC 让大机退居幕后,而新 iPad  准备让 PC 退居角落。这就是后 PC 时代。

现在,最大的怨念就是没有 128G 闪存了,1080p的拍摄和加工,2048×1536的界面和游戏内容资源,不够用呀!

话说,每次 Apple 发布新产品,我都感到一阵窒息,不是因为惊艳,而是最改变世界的那些活都让丫给干了,这是“一个想革命的男人身处大时代的无力感 (-陈升)”。