Git Product home page Git Product logo

objc-zen-book-cn's People

Contributors

100mango avatar 14lox avatar albertodebortoli avatar altyus avatar barksten avatar bryanjclark avatar cconstable avatar chenyilong avatar futantan avatar guillaumealgis avatar howarduoz avatar hs-yeah avatar iwill avatar kevinhm avatar khanghoang avatar lazykaka avatar luca-bernardi avatar oa414 avatar readmecritic avatar vinhnx avatar yaannz avatar yourtion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

objc-zen-book-cn's Issues

practice

我感觉 practice 这个词的含义应该是惯例,或者引申为编程规范 or 规范

practice的定义
noun
the actual application or use of an idea, belief, or method as opposed to theories about such application or use.
"the principles and practice of teaching"
同义词: application, exercise, use, operation, implementation, execution

翻译错误

原文

Private properties should be declared in class extensions (anonymous categories) in the implementation file of a class. Named categories (e.g. ZOCPrivate) should never be used unless extending another class.

译文

私有属性应该定义在类的实现文件的类的扩展 (class extensions) 中。不允许在有名字的的 category(如 ZOCPrivate)中定义私有属性,除非你扩展其他类。

一个小错字

在"属性定义" 一节中
"为了完成一个共有的 getter 和一个私有的 setter,你应该声明公开的属性为 readonly 并且在类扩展总重新定义通用的属性为 readwrite 的。"

类扩展"总"应该是 " 中" 吧, 一个小错字

翻译错误

There are three different situations that may present when defining a new class:

  • No need to override any initializers
  • Overriding designated initializer
  • Define a new designated initializer

当顶一个一个新类的时候有三个不同的解决方法: 1. 不需要重载任何初始化函数 2. 重载 designated initializer 3. 定义一个新的 designated initializer

常量extern的写法在Xcode7中编译不通过

在 .h中

import <UIKit/UIKit.h>

extern NSString *const ZOCCacheControllerDidClearCacheNotification;

@interface ViewController : UIViewController

@EnD

在.m中

import "ViewController.h"

static NSString * const ZOCCacheControllerDidClearCacheNotification = @"ZOCCacheControllerDidClearCacheNotification";

@implementation ViewController

@EnD

错误信息如下:
Static declaration of "ZOCCacheControllerDidClearChacheNotification" follows non-static declaration.

查询了一下iOS SDK中, 使用类似这个:
UIKIT_EXTERN NSString * const NSForegroundColorAttributeName
来提供外部使用

猜测,在.m中,实现方式如下
NSString * const NSForegoundColorAttributeName = @"NSForegoundColorAttributeName";

于是,实验了一下,编译通过:

在.h文件中

import <UIKit/UIKit.h>

UIKIT_EXTERN NSString * const kKey;

@interface ViewController : UIViewController

@EnD

在.m文件中

import "ViewController.h"

NSString * const kKey = @"Key";

@implementation ViewController

@EnD

编译通过,运行拿到数据。
如果命名重复,在外部引用时,定义了相同的名字
NSString *kKey = @"a";
NSLog(@"Key: %@",kKey);
这个时候,kKey 是 a。

第六章没有翻译完

Designated and Secondary Initializers

有一大段没有翻译,从下面这段开始:

It should rather be valid to call any designated initializer in the class hierarchy, and it should be guaranteed that all the designated initializer in the class hierarchy are called starting from the furthest ancestor (typically NSObject) down to your class. Practically speaking this means that the first initialization code executed is the furthest ancestor, and then going down to the class hierarchy; giving to all the classes in the hierarchy the chance to do their specific part of initialization. This totally make sense: you want that everything you inherit from your superclass is in an usable state before doing your actual work. Even though it isn't explicitly stated, all the classes in Apple's frameworks are guaranteed to respect this contract and your classes should do the same to be sure to be a good citizen and behave correctly and as expected

是不是太着急了

从Designated initializer开始往下,每一个概念里面,涉及到的知识点,差不多有一半翻译得比较生硬。。。出现很多小错误,有些甚至跟原文意思彻底相反,慢慢来呀,别太急哥们。。。

关于"重载"和"重写"

中文翻译文档中多次提到"重载"这个词,不过根据我个人的理解,它们在文中的意思应该都是"重写"(Override)吧,应该是子类重写父类的方法。OC是没有重载这个特性的 =。=

关于weekSelf和strongSelf中的问题

你好,原文在讲__weak和__strong关键字的时候举了官方文档的一个例子

MyViewController *myController = [[MyViewController alloc] init...];
// ...
MyViewController * __weak weakMyController = myController;
myController.completionHandler =  ^(NSInteger result) {
    MyViewController *strongMyController = weakMyController;
    if (strongMyController) {
        // ...
        [strongMyController dismissViewControllerAnimated:YES completion:nil];
        // ...
    }
    else {
        // Probably nothing...
    }
};

然后作者说self不能被delloc和赋值为nil。我觉得这里是没有问题的,文档中使用MyViewController * __weak weakMyController = myController;,这里让一个新的指针指向weakMyController所指的指针,但是引用计数应该是没有增加的,这里可以理解成是一个局部变量?然后当block结束该指针会自动释放,所以self还是能够被正常的销毁。

我也不知道我理解的对不对,希望大神指教。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.