V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  vincentxue  ›  全部回复第 56 页 / 共 61 页
回复总数  1211
1 ... 48  49  50  51  52  53  54  55  56  57 ... 61  
2015-03-31 14:23:01 +08:00
回复了 touzi 创建的主题 iPhone apple 官网以旧换新开始啦
二手市场低价收入然后去换新如何.
2015-03-31 09:38:31 +08:00
回复了 tsinghan 创建的主题 iOS collectionview 使用 flow layout 时, header 的高度, 有方法设置吗?
@tsinghan 默认的 flow layout 不就是 UICollectionViewFlowLayout 吗... UICollectionViewDelegateFlowLayout 是遵循 UICollectionViewDelegate 协议的。
2015-03-31 09:31:34 +08:00
回复了 cevincheung 创建的主题 iOS 模拟器挺流畅,到真机上慢的一逼……为啥
建议 Instruments 真机调试下。
2015-03-31 09:29:08 +08:00
回复了 ynyounuo 创建的主题 分享发现 Tesla 即将在 4 月 30 日发布新产品,大家猜猜是什么!
反正买不起。
2015-03-31 09:17:03 +08:00
回复了 vincentxue 创建的主题 问与答 如何有效地投诉小饭店卫生不好的情况?
各位说的都是有道理的,确实难以举报。

还是我自己做饭了以后,反正住的离公司也就不到十分钟。
2015-03-28 13:54:46 +08:00
回复了 cevincheung 创建的主题 iDev 关于 ios 真机测试的问题,
你可以把你的设备 ID 理解为无法接收邮件的邮箱地址,你在哪注册都行,注册哪家就可以用哪家的服务,相互之间没影响。
2015-03-28 11:51:10 +08:00
回复了 tt7 创建的主题 职场话题 大家求职时除了工资、福利还关注什么?
产品和团队水平,钱是次要的。
做一个自己不认同的产品没有动力。
跟猪一样的队友一起干活很累。
@Mush ……66666
安慰一下。。。

楼主家怎么被盗了,说说也好让我们防贼啊。
2015-03-27 18:28:06 +08:00
回复了 WildCat 创建的主题 问与答 如何修改 Github 的 Pull Request 中的 Commit?
2015-03-27 18:15:06 +08:00
回复了 powtop 创建的主题 问与答 关于在线教育,有木有好的解决方案
沪江已经被黑成翔了。
2015-03-27 17:32:40 +08:00
回复了 zioc 创建的主题 iDev iOS 用 Dictionary 接收数据而不用实体类的弊端
@alsotang 这个情况普遍存在。
2015-03-27 17:31:59 +08:00
回复了 nellace 创建的主题 iDev 总感觉自己写的这个 block 怪怪的
2015-03-27 17:29:04 +08:00
回复了 nellace 创建的主题 iDev 总感觉自己写的这个 block 怪怪的
我个人属于代码洁癖型选手,个人挑一些小毛病,如下:

1、方法名命名不规范,应该为 `- (void)getMatchesListWithHolder:(UIView *)holder success:(void(^)(NSArray *dic))success;` ,success 是小写。

2、Block 参数变量名不规范。类型是 NSArray,变量名却写 `dic`。

3、单例命名不规范,单例通常应该命名为 `sharedXXX`,例如 `[NSURLSession sharedSession]`。

4、回调只有成功回调,没有失败的回调,如果请求失败了,那么回调就不会被执行。

5、违反 MVC 设计模式。最好不要把 View 传进 Model,如果是要取 View 的参数就传这些参数,如果是要对 View 操作就在 Controller 的回调里操作。

6、应该子类化 AFNetworking 为一个单例网络请求类,做一些必要的额外设置,提供 baseURL 以便于请求时只输入 URI 即可,而不同写完整的 URL。

7、请求的 URI 地址命名没有含义,不利于识别。

8、使用一句代码取层次较深的数据容易出错。并且应该使用字面量(这样做的好处请自行 Google)。

9、没有对 `success` 回调做判断,如果调用者传入 nil,那么你调用 `success` 会造成 Crash。

10、如果你的服务器使用 HTTP 错误码标识网络请求错误,那么 API 请求错误就肯定是使用 2XX 的状态码。而在 iOS 网络请求中 2XX 是表示成功的请求,那么此时你的 `responseObject` 是存在的,但是它是一个错误的数据,你简单的使用 if 判断这个对象是否存在来判断请求成功失败,这样做是有风险的。

11、这个属于我个人的习惯,我认为方法的类型也应该是有区别的。类方法(+)应该是对整个模型层面的操作,实例方法(-)是对某单个模型的操作。例如有一个朋友圈类,发布朋友圈或者加载我的朋友圈应该是封装成类方法,对某一条朋友圈评论或赞应该封装成实例方法。又如有一个用户类,请求附近的用户,应该写成类方法,更新当前用户的资料,应该写成实例方法。如果按照我的这个逻辑,你的方法类型就不对了。


我个人封装网络请求类似于这样:

我自己的服务器不管是网络错误还是请求错误都不会返回 2XX 的状态码,所以我只要是进了成功的回调,那么这个请求一定是成功了。

```
+ (NSURLSessionDataTask *)getAuthCodeWithPhoneNumber:(NSString *)phoneNumber completionHandler:(OPTCompletionBlock)completionHandler {
NSString *URLString = [kGetAuthCodeURI stringByAppendingPathComponent:phoneNumber];
return [[OPTEngine sharedEngine] GET:URLString parameters:nil
success:^(NSURLSessionDataTask *task, id responseObject) {
!completionHandler ?: completionHandler(YES, nil);
} failure:^(NSURLSessionDataTask *task, NSError *error) {
!completionHandler ?: completionHandler(NO, [OPTError errorWithResponseError:error]);
}];
}
```

```
typedef void (^OPTCompletionBlock)(BOOL success, NSError *error);
```

另外回调也分为两种,一种是成功和失败分别回调,一种是成功和失败同一个回调,使用 BOOL 或者 NSError 标识请求是否成功,我个人偏向使用同一个回调,因为有时候需要在成功和失败时调用相同的代码(例如隐藏 HUD)。
2015-03-27 16:50:49 +08:00
回复了 zioc 创建的主题 iDev 对于一个会 SQL 的人来说, CoreData 的意义在哪里?
这种问题感觉属于伸手党,网上有很多讨论。

如果有 RoR 经验,推荐下 MagicalRecord。

https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=ios%20sql%20vs%20core%20data
2015-03-27 16:33:35 +08:00
回复了 zioc 创建的主题 iDev iOS 用 Dictionary 接收数据而不用实体类的弊端
如果是用 JSON 交互,那么上服务器的一个对象,会包装为字典传给你,然后你就要把这个字典映射为自己的实体对象。

字典只是作为中介传输使用,你模型类公开的属性或变量不应该有字典类型,因为你总是应该把它映射为实体才对。

建议看看 Instagram 的 API,写得相当优秀。

贴一个我前段时间写的一个小项目的一个模型类。仅供参考。

https://gist.github.com/VincentSit/fd64cd721c0e366b3f04
https://gist.github.com/VincentSit/66e7261779a8d24d2795

这个类里的代码涉及到的第三方库:
AFNetworking - 网络请求
MagicalRecord - Core Data 封装
Motis - 模型映射
感谢萌妹子!

其实一开始我是拒绝的。。但我太喜欢这只萌鹿了。为了一件T恤出卖了我的身份信息,身高体重都标上了。。。。看来以后不能乱装逼了。
你们这个抱枕和衣服售卖吗?。。。
摸奖啊 我喜欢这个萌鹿.
1 ... 48  49  50  51  52  53  54  55  56  57 ... 61  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2209 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 49ms · UTC 02:05 · PVG 10:05 · LAX 19:05 · JFK 22:05
Developed with CodeLauncher
♥ Do have faith in what you're doing.