V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
clowwindy
V2EX  ›  iDev

苹果的程序写的很粗制滥造,而且很少修 bug。

  •  
  •   clowwindy · 2012-05-07 17:26:47 +08:00 · 6906 次点击
    这是一个创建于 4578 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我是一个 iOS 开发者,很多用户向我反应他们遇到了没有声音的问题,无论重启、重装应用,都不能解决问题。而我一直以来无法重现这个问题,最近 Google 了一下 iOS no sound,结果发现有很多人遇到过这个问题:MacRumors,官网支持论坛,StackOverflow 上到处都是 iOS 没声音的讨论。有一个开发者用视频演示故障的前因后果,指出是某些应用把整个音频服务 Crash 掉了。解决方法很有意思:先把音量调到最小,再调到最大。

    https://discussions.apple.com/thread/3790682?start=0&tstart=0

    http://youtube.com/watch?v=RYOBT1LPIJA

    我前阵子还遇到过苹果到现在也没修好的 iPhone 莫名其妙掉电,只能待机 8 小时,“使用时间=待机时间” 的经典 bug。重启,重置都无法完全解决 bug。我最终在官方论坛上找到了民间发现的解决方法:

    https://discussions.apple.com/message/13300314#13300314

    1. 关闭 Wifi
    2. 打开 3G 的所有选项
    3. 等 5 分钟
    4. 关闭 3G
    5. 打开 Wifi
    6. 打开 3G

    很神奇,这么操作了一下之后,bug 就消失了。

    很明显,这些都是很低级的 bug,应该是不难解决的。有的是从 iOS 4 时代就遗留下来的 bug,有大量的用户碰到这些问题,苹果却视而不见,只能让用户自己想办法。可见苹果的软件有多么粗制滥造。不是说研发设计能力不行,而是质量控制不行。他们有能力设计出 CocoaTouch 这样性能第一好的 UI 框架来,却在这样一些虽然不起眼,但对用户影响很大的地方栽跟头。这是作为一家大公司,想要长久发展下去,必须改变的。


    ps. @Livid Youtube 那个我其实只是想发个链接,而不是嵌一个视频,不知有没有提供这样的选项?
    32 条回复    1970-01-01 08:00:00 +08:00
    guotie
        1
    guotie  
       2012-05-07 18:20:00 +08:00
    一直认为苹果写程序很烂
    altchen
        2
    altchen  
       2012-05-07 18:20:37 +08:00   ❤️ 1
    楼主说的是一种可能
    但也有一种是到了系统这种代码级别的,看起来简单的问题,并不一定真的简单
    记得看过一报道(忘了具体是什么了,一时没搜到),新版window修改一个初看非常简单的东西,但最终要几个负责不同模块的部门同时处理x工作量才行,规模不小
    当时也相当不解和震惊
    Livid
        3
    Livid  
    MOD
       2012-05-07 18:26:33 +08:00   ❤️ 3
    苹果这几年一直处在一种像是初创公司一样的 rush 模式中,保持了业界内最快的迭代速度。而这是会带来问题的。

    @clowwindy 我帮你把链接中的 www 去掉就不会转换了。
    yuelang85
        4
    yuelang85  
       2012-05-07 20:54:18 +08:00
    如2楼所说,这种问题常有,平时总能看到,一个很简单的小bug,结果扯出一堆底层代码,发现要改近似等于重写,最终只能放弃。。。。
    lijia18
        5
    lijia18  
       2012-05-07 20:57:08 +08:00
    大哥还没写过android程序吧,apple好歹还是it just work,android泪奔中.
    sobigfish
        6
    sobigfish  
       2012-05-07 21:00:28 +08:00
    最近偶尔遭遇的:手机突然无服务,飞行模式手动更改运营商都不行。只有重启。。。iOS 5.1
    wtl
        7
    wtl  
       2012-05-07 21:12:32 +08:00
    个人认为 就苹果的人力而言 苹果的代码写的非常之好 或者说是不能再好了
    virushuo
        8
    virushuo  
       2012-05-07 21:20:01 +08:00   ❤️ 1
    苹果代码质量已经算很好的了。但是因为整个代码规模太大,迭代太高,问题还是有的。

    iOS已经算不错,Mac OS问题更多,因为大量人力都在iOS那边。

    顺便说一下,最让人没法忍的还是XCode。几次让我不想写iOS程序都是被这破东西弄的。3.2时代不是很好嘛。怎么越做越差了。
    uil330
        9
    uil330  
       2012-05-07 21:24:46 +08:00
    @virushuo +1 万恶的内存泄露+高cpu占用啊
    sevear
        10
    sevear  
       2012-05-07 21:51:21 +08:00
    哇,好像真的管用啊。我还以为我的itouch要报废了。。
    clowwindy
        11
    clowwindy  
    OP
       2012-05-07 22:16:49 +08:00
    @Livid @altchen 你们说的很有道理。初期欠考虑的地方,后期维护起来的确会很麻烦。Rework 里提到的 Launch now 原则,我看的时候就感到质疑。不过我相信有足够的人力这些问题是可以克服的。从 XP 到 Win7,微软在保持二进制兼容的前提下对很多模块动了大刀子。苹果握有大量现金,我觉得在软件质量上进行更多投入,改善用户体验是没有问题的。

    @wtl 哪方面?苹果的 API 很干净,很直观,但莫名其妙的 bug 不少,特别是 iOS 5。举一个例子,iOS 的内存管理从“界面”上很直观,但很占内存的游戏会经常第一次启动时闪退,第二次才能正常启动。这很明显是其它占内存的程序还没来得及执行完 applicationDidEnterBackground:,前台的游戏就已经申请了过多的内存。这就是这个 Multi-tasking 设计欠考虑的地方:它有时会让人莫名其妙。
    相比之下,微软设计的东西使用起来莫名其妙,但 bug 相比之下比较不那么莫名其妙。像 IE6 的那些 bug,基本上都是很有逻辑的。Windows 很少出现随机出现的问题,除了那个经常连不通的网上邻居。

    @virushuo XCode 4 以后频繁 Crash 啊……有一个自动补全时的 Crash 我已经能 100% 重现出来了。
    comcuter
        12
    comcuter  
       2012-05-07 22:48:06 +08:00
    @altchen 是不是这个,换一个灯泡需要多少微软员工?http://blogs.msdn.com/b/ericlippert/archive/2003/10/28/53298.aspx
    Kobe
        13
    Kobe  
       2012-05-07 22:51:21 +08:00
    Apple研发成本只占总成本.01
    lldong
        14
    lldong  
       2012-05-07 23:09:36 +08:00
    Xcode上AppStore的第一件事就是跑去評一星
    sodapanda
        15
    sodapanda  
       2012-05-07 23:15:57 +08:00
    那大家为什么这么喜欢苹果的东西?
    JTR
        16
    JTR  
       2012-05-07 23:49:46 +08:00
    据说苹果里很多软件都是三哥写的?
    ghyghoo8
        17
    ghyghoo8  
       2012-05-07 23:59:21 +08:00
    吐槽苹果额~
    deanguqiang
        18
    deanguqiang  
       2012-05-08 00:03:56 +08:00
    你说的这些bug还真没遇到过,甚至没有听说过;
    不过如果你用过android,你就知道什么叫做真正的BUG
    marvinII
        19
    marvinII  
       2012-05-08 00:06:37 +08:00
    有些太偏激了吧。

    系统级的东西不是想改就改就那么容易的 - 要是觉得自己三下五除二就能搞定,就去苹果面试吧。

    我有一哥们,他们给苹果做基带,品质控制的是非常严格的。
    aero
        20
    aero  
       2012-05-09 13:22:42 +08:00
    lz说的完全正确,而且说的太少了.苹果2-3年前时,所有平台接近于完美,然后硬件软件售后都他妈的越来越垃圾
    jesse0628
        21
    jesse0628  
       2012-05-09 13:34:55 +08:00
    @aero 两三年前你也是像现在这样大量的频繁使用苹果的东西吗?
    dianso
        22
    dianso  
       2012-05-09 13:47:11 +08:00
    苹果系统外包给阿三了
    piderManX
        23
    piderManX  
       2012-05-31 19:30:19 +08:00
    iOS没敢用那麽高版本 MacOS也没用 還在10.6.8 一直很好 就擔心老喬離開後 蘋果何去何從。。。 以後買蘋果要謹慎了。。。
    kevinzhow
        24
    kevinzhow  
       2012-05-31 19:56:24 +08:00
    玩过几天WP7开发后,写iOS发现Xcode的崩率远高于 VS
    wingoo
        25
    wingoo  
       2012-05-31 20:10:03 +08:00
    @kevinzhow VS基本没崩溃不
    iEggache
        26
    iEggache  
       2012-05-31 20:14:49 +08:00
    一句话:你觉得人家烂,你可以选择Android,你可以选择Windows Phone 7。。。选择权都在你门自己手上,自己要选择做这个,怪的了谁,关于人家代码乱不乱,好不好,我是不敢说,至少在我没有几个竞争平台全部都做过,且经验足够之前我不敢说,没能力说。。。我可以说是你写的App的问题么?
    kevinzhow
        27
    kevinzhow  
       2012-06-01 23:41:17 +08:00
    @iEggache 真的,亲,Xcode 你随便点点都会崩溃的(不算夸张太多),有个万能的崩溃bug是你点下device(在你没有连接ios设备到电脑的时候)正常的是应该提示下吧,比如,请您连接您的ios设备到电脑,结果这货直接crash掉了。。
    clowwindy
        28
    clowwindy  
    OP
       2012-06-02 11:27:41 +08:00
    自从升了 5.1,stacktrace 就变成无符号的了:

    Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds for empty array'
    *** First throw call stack:
    (0x37be688f 0x32f17259 0x37b2f9db 0x4409b 0x309f8c8b 0x30a051e9 0x30a05059 0x30a04f3f 0x30a0470b 0x30a04503 0x309f8aff 0x309f87d5 0xc8e3 0x439f5 0x37b403fd 0x309dae07 0x309dadc3 0x309dada1 0x309dab11 0x309db449 0x309cdb87 0x37bbab1b 0x37bb8d57 0x37bb90b1 0x37b3c4a5 0x37b3c36d 0x3601f439 0x309edcd5 0x29db 0x2970)
    terminate called throwing an exception(lldb)
    lwjefSub
        29
    lwjefSub  
       2012-06-02 11:54:16 +08:00
    @iEggache 不 不 不
    这样的逻辑不太好
    实在不想拿贵国做类比 太糟糕了
    你懂的
    Elfe
        30
    Elfe  
       2012-06-09 01:19:15 +08:00
    @clowwindy echo... XCode4 每天不 crash 三次以上,就说明我这一天没怎么玩代码
    Elfe
        31
    Elfe  
       2012-06-09 01:23:20 +08:00
    @clowwindy 原来以前不是这样的啊?我还在说,都怪VS太智能了,害得我一直都没有练习那些通过内存跳来跳去debug的本事,现正无比痛苦中呢。
    Yang_NH
        32
    Yang_NH  
       2012-06-09 01:27:31 +08:00
    使用时间=待机时间据说是因为彩信接收的问题……
    网上流传如此……有彩信来你却因为网络问题收不到,所以就一直卡在那里,导致了这个问题……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5258 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:43 · PVG 13:43 · LAX 21:43 · JFK 00:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.