Ios 从两个类访问同一段代码
我有两个类,每个类都有一个使用相同代码段的实例方法 这段代码接受一个NSString并返回一个NSArray 目前,同一段代码在两个类中重复 有没有一种方法可以分别编写并由两个类调用它?我试图在NSArray的子类中创建一个方法,但由于NSArray是一个抽象类,因此存在许多问题。有什么建议吗Ios 从两个类访问同一段代码,ios,objective-c,ipad,cocoa-touch,Ios,Objective C,Ipad,Cocoa Touch,我有两个类,每个类都有一个使用相同代码段的实例方法 这段代码接受一个NSString并返回一个NSArray 目前,同一段代码在两个类中重复 有没有一种方法可以分别编写并由两个类调用它?我试图在NSArray的子类中创建一个方法,但由于NSArray是一个抽象类,因此存在许多问题。有什么建议吗 谢谢。要扩展类的行为,正确的方法是在该类上创建一个类别,而不是对NSArray进行子类化 因此,您可以在NSString上创建一个返回数组的类别,并在将该类别导入到项目后,可以将其作为NSString的一
谢谢。要扩展类的行为,正确的方法是在该类上创建一个类别,而不是对NSArray进行子类化 因此,您可以在NSString上创建一个返回数组的类别,并在将该类别导入到项目后,可以将其作为NSString的一部分进行调用,例如:
NSString *myString = @"Hello";
NSArray *myArray = [myString generateArrayFromString];
您可以在此处找到有关如何创建类别的指南:
扩展类行为的正确方法是在该类上创建一个类别,而不是子类化NSArray 因此,您可以在NSString上创建一个返回数组的类别,并在将该类别导入到项目后,可以将其作为NSString的一部分进行调用,例如:
NSString *myString = @"Hello";
NSArray *myArray = [myString generateArrayFromString];
您可以在此处找到有关如何创建类别的指南:
您可以尝试创建NSString类别。此类别将返回数组。 例如: 然后在类中(或在代码中输入任何内容),可以导入类别:
#import "NSString+MyCategory.h"
然后在任何字符串上使用它:
NSArray *myArray = [anyString myMethod];
您可以尝试创建NSString类别。此类别将返回数组。 例如: 然后在类中(或在代码中输入任何内容),可以导入类别:
#import "NSString+MyCategory.h"
然后在任何字符串上使用它:
NSArray *myArray = [anyString myMethod];
从它的声音(将字符串解析为NSArray,并引用类的实例字段)可以使该方法成为类(vs instance)方法,并从任何一个类调用它
即:
使用[TheNameOfClass parseThisString:inputString]
调用
当然,如果您尊重类实例中的值,这将不起作用。从它的声音(将字符串解析为NSArray,并参考类的实例字段)可以将该方法设置为类(vs instance)方法,并从任何一个类调用它
即:
使用[TheNameOfClass parseThisString:inputString]
调用
当然,如果您尊重类实例中的值,这将不起作用。不要在这样的方法名称中使用
get
,它在Cocoa上下文中有更具体的含义。如果命名方法get
,通常意味着调用方负责提供缓冲区以获取输出。例如,请参见getObjects:range:
fromNSArray
和getCharacters:range:
fromNSString
,以及getStreamsToHost:port:inputStream:outputStream:
fromNSStream
。不要在这样的方法名称中使用get
,它在Cocoa上下文中有更具体的含义。如果命名方法get
,通常意味着调用方负责提供缓冲区以获取输出。例如,请参见getObjects:range:
fromNSArray
和getCharacters:range:
fromNSString
,以及getStreamsToHost:port:inputStream:outputStream:
fromNSStream
。