Open fighting300 opened 8 years ago
在脚本中,若新建对象的所属类有类方法时,在不影响性能的情况下,优先使用类方法。JS脚本翻译为OC执行逻辑时,是分开调用每一个方法的。即[[Class alloc] initMethod]
是分开调用的。
执行逻辑类似于
aObject = [Object alloc];
[aObject initMethod];
此种方式的弊端在于,对于一部分alloc
后的对象不等于init
后的对象的类,如类簇(如NSString, NSArray等),日历NSCalendar等,会出现问题。
相似问题参考:https://github.com/bang590/JSPatch/issues/248。
case1. var fileData = NSData.alloc().initWithContentsOfFile(packagePath); case2. var fileData = NSData.dataWithContentsOfFile(packagePath) if (fileData.length() == 0) { } 在类方法中试用case1.会报"Reason":"*\ -length only defined for abstract class. Define -[_NSPlaceholderData length]!"的错误 目前出现问题的手机是iphone6s 找到相关的oc问题解答http://stackoverflow.com/questions/6012080/nsstring-initialization