锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / Object-C输入法源代码分析
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品开源,禁止转载和任何形式的非法内容使用,违者必究


Object-C输入法源代码分析

@synthesize

  1. @synthesize 的语义是如果你没有手动实现 setter 方法和 getter 方法,那么编译器会自动为你加上这两个方法。

 self.tokenField.text = [[self.parser tokenize:self.token] componentsJoinedByString:@"'"];
消息形式的函数调用
将array数组转换为string字符串
 NSString *tempString = [mutableArray componentsJoinedByString:@","];--分隔符

[[alloc] init] 相当于new

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
名称相当于collectionView+ numberOfItemsInSection,有2个参数第一个冒号后是一个,第二个冒号后是第2个。

JPParser里有loadDictionary
candidates的数据入和出分析:
数组指针
self.candidates = [[self.parser parse:self.token] objectForKey:@"candidates"];
内嵌的中括号是表示的是?NSDictionary是字典,当然可以当键来访问,相当于指定用””内的键来找出来东西

    [result setObject:tokens forKey:@"tokens"];
result怎么理解,是对象,setObject是方法,forKeys是方法的名称也是第二参数的分隔点
IBOutlet,OUTLET(输出口),和界面相关
weak,strong指针的引用特性,弱,强。和释放对象有关。

titleForState

- (void)candidateButtonPressed:(id)sender里的更换拼音目的对,但是方式看不明白,候选变了,拼音也要变,不过为什么要这么变,

            self.token = [self.token substringToIndex:self.token.length - 1];
这好像向字符串赋值个字符,不能理解
token是字符串数组,这就是不用前面项的处理

NSMutableArray,可变数组,可以动态添加项

            [self.dict setObject:[NSMutableArray array] forKey:[parts objectAtIndex:1]];
[[self.dict objectForKey:[parts objectAtIndex:1]] addObject:[parts objectAtIndex:0]];
添加数组
数组添加对象

    if ([self.dict objectForKey:[tokens objectAtIndex:0]])
[result setObject:[self sortByWeight: [self.dict objectForKey:[tokens objectAtIndex:0]]] forKey:@"candidates"];
else
[result setObject:[NSMutableArray array] forKey:@"candidates"];

变化后的拼音数组第一项在字典里,则用字典排序结果
否则直接用拼音数组结果

在模拟器里Debug有候选字,也能显示出来结果,不过好像是直接当进程运行的,不是以其它软件内嵌入运行。
基本确定:模拟器里有可能打开界面的,找个更好的输入法代码才行。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内